728x90
우분투에서 rc-local(rc.local) 서비스를 활성화하는 방법
Ubuntu 22.04는 rc.local이 기본적으로 비활성화되어 있으며, systemd를 사용하는 서비스와 유닛 파일로 대체되었습니다.
테스트 환경
$ lsb_release -d
Description: Ubuntu 22.04.2 LTS
rc-local 서비스 활성화
1. rc-local 서비스 상태 확인
systemctl status rc-local.service
$ systemctl status rc-local.service
○ rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; static)
Drop-In: /usr/lib/systemd/system/rc-local.service.d
└─debian.conf
Active: inactive (dead)
Docs: man:systemd-rc-local-generator(8)
2. /etc/rc.local 스크립트 생성
실행하려는 스크립트를 /etc/rc.local 파일에 작성합니다.
printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local
$ printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local
#!/bin/bash
exit 0
(또는)
sudo vim /etc/rc.local
#!/bin/sh -e
#
# Your custom commands go here
#
exit 0
3. /etc/rc.local 스크립트 실행 권한 설정
sudo chmod +x /etc/rc.local
$ ls -l /etc/rc.local
-rwxr-xr-x 1 root root 19 Oct 21 13:02 /etc/rc.local
$ cat /etc/rc.local
#!/bin/bash
exit 0
4. rc-local.service(/lib/systemd/system/rc-local.service) 파일 생성
rc.local 스크립트를 systemd 서비스로 등록해야 합니다.
/lib/systemd/system/rc-local.service 파일을 생성하고 편집합니다.
cat /lib/systemd/system/rc-local.service
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
아래 내용을 파알에 추가합니다.
cat << EOF >> /lib/systemd/system/rc-local.service
[Install]
WantedBy=multi-user.target
EOF
728x90
$ cat /lib/systemd/system/rc-local.service
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
[Install]
WantedBy=multi-user.target
5. rc-local 서비스 활성화
rc-local 서비스를 활성화합니다.
sudo systemctl enable rc-local.service
6. 부팅 시 자동 실행 확인
Ubuntu 22.04에서는 /etc/rc.local 파일이 기본적으로 비활성화되어 있지만 활성화하려면 다음 명령을 실행하십시오.
sudo systemctl start rc-local.service
rc-local 서비스 활성화 및 시작
더보기
systemctl --now enable rc-local
$ systemctl --now enable rc-local
Created symlink /etc/systemd/system/multi-user.target.wants/rc-local.service → /lib/systemd/system/rc-local.service.
---
rc-local 서비스 상태 확인
systemctl status rc-local
$ systemctl status rc-local
● rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; enabled; vendor preset: enabled)
Drop-In: /usr/lib/systemd/system/rc-local.service.d
└─debian.conf
Active: active (exited) since Fri 2022-10-21 13:09:33 KST; 3min 57s ago
Docs: man:systemd-rc-local-generator(8)
Process: 5330 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)
CPU: 2ms
Oct 21 13:09:33 replydb-245 systemd[1]: Starting /etc/rc.local Compatibility...
Oct 21 13:09:33 replydb-245 systemd[1]: Started /etc/rc.local Compatibility.
이 명령은 /etc/rc.local 파일을 활성화하고 현재 상태를 확인합니다.
참고: rc.local을 사용하는 것은 보안 및 호환성 문제로 권장되지 않습니다. 더 안전한 대안을 고려하고 필요한 경우 systemd 서비스나 cron 작업을 사용하는 것이 좋습니다.
728x90
'리눅스' 카테고리의 다른 글
[kubernetes] kubectl config 명령 - 2 (0) | 2022.10.21 |
---|---|
[kubernetes] kubectl get 명령 (0) | 2022.10.21 |
[draft] 우분투에 MySQL을 바이너리 파일로 설치하는 방법 (0) | 2022.10.20 |
[kubernetes] 쿠버네티스 kubectl config 설정 (0) | 2022.10.20 |
[Mac] virtualbox command (0) | 2022.10.19 |