본문 바로가기

리눅스

CentOS 7에서 rc-local(rc.local) 서비스를 활성화하는 방법

728x90

CentOS 7에서 rc-local(rc.local) 서비스를 활성화하는 방법

CentOS 7에서는 rc.local 스크립트가 기본적으로 비활성화되어 있습니다. 그러나 필요한 경우 이를 활성화할 수 있습니다. rc.local 스크립트는 시스템 부팅 시에 자동으로 실행되는 사용자 정의 스크립트입니다.

테스트 환경

  • 운영체제 버전 정보 확인
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
  • rc.local 서비스 상태 확인
$ sudo systemctl status rc-local.service
● rc-local.service - /etc/rc.d/rc.local Compatibility
   Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static; vendor preset: disabled)
   Active: inactive (dead)
  • rc.local 파일 확인
cat /etc/rc.local
 #!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
  • /etc/rc.local 실행 권한 확인
ls -l /etc/rc.local
$ ls -l /etc/rc.local
lrwxrwxrwx. 1 root root 13 Oct 23 13:39 /etc/rc.local -> rc.d/rc.local

 

/etc/rc.local 스크립트가 없으면 생성

더보기

---

rc.local 스크립트 생성

sudo vim /etc/rc.local
#!/bin/bash
# 여기에 명령어나 스크립트를 추가하세요
/경로/스크립트.sh
명령어1
명령어2
exit 0

(또는)

printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local

rc.local 파일에 실행 권한 부여

sudo chmod +x /etc/rc.local

---

728x90

1. rc.local 파일에 실행 권한 부여

sudo chmod +x /etc/rc.d/rc.local

 

2. rc-local.service 파일 편집

/usr/lib/systemd/system/rc-local.service 파일 확인

cat /usr/lib/systemd/system/rc-local.service
#  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.d/rc.local is executable.
[Unit]
Description=/etc/rc.d/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.d/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.d/rc.local start
TimeoutSec=0
RemainAfterExit=yes

에디터에서 다음 내용을 추가합니다.

sudo vim /usr/lib/systemd/system/rc-local.service
[Install]
WantedBy=multi-user.target

파일을 저장하기 위해 Shift + zz를 누르고 저장한 후 텍스트 편집기를 종료합니다.

 

3. rc-local.service를 활성화하기 위해 다음 명령어를 실행합니다.

sudo systemctl enable rc-local.service
sudo systemctl start rc-local.service

 

4. rc-local.service 서비스 상태 확인

systemctl status rc-local.service
$ systemctl status rc-local.service
● rc-local.service - /etc/rc.d/rc.local Compatibility
   Loaded: loaded (/usr/lib/systemd/system/rc-local.service; enabled; vendor preset: disabled)
   Active: active (exited) since Tue 2023-10-24 14:28:40 KST; 11min ago
  Process: 1570 ExecStart=/etc/rc.d/rc.local start (code=exited, status=0/SUCCESS)

Oct 24 14:28:40 localhost.localdomain systemd[1]: Starting /etc/rc.d/rc.local Compatibility...
Oct 24 14:28:40 localhost.localdomain systemd[1]: Started /etc/rc.d/rc.local Compatibility.

 

5. rc-local 로그 확인

rc.local 스크립트의 로그를 확인하려면 /var/log/rc.local 파일을 검토합니다.

 

참고로, rc.local 스크립트는 시스템 부팅 시에 실행되며 종료 상태를 반환하지 않으면 부팅 프로세스가 차단될 수 있으므로 주의가 필요합니다. 필요한 작업을 신중하게 추가하십시오.

 

728x90