본문 바로가기
IT/리눅스

CentOS 7 / RedHat 7 rc.local 활성화 및 설정 방법

by JGSHIN 2025. 2. 15.
SMALL

📌 rc.local 활성화가 필요한 이유

  1. 부팅 시 자동 실행
    • rc.local은 서버 부팅 시 특정 스크립트를 자동으로 실행하는 전통적인 방식입니다.
    • CentOS 6까지는 기본적으로 활성화되어 있었지만, CentOS 7부터는 기본적으로 비활성화되었습니다.
    • 이를 다시 활성화하면, 서버 부팅 시 특정 명령어 또는 스크립트를 자동 실행할 수 있습니다.
  2. 간편한 관리
    • 특정 작업을 실행하기 위해 복잡한 systemd 서비스를 만들 필요 없이 간단하게 스크립트 추가 가능
    • 예를 들어, 서버 부팅 시 특정 서비스 시작, 네트워크 설정 적용, 마운트 자동 수행 등의 작업을 rc.local에 추가할 수 있음
  3. 백그라운드 프로세스 실행 가능
    • nohup이나 & 기호를 사용하여 백그라운드에서 실행해야 하는 작업을 쉽게 실행 가능

🛠️ rc.local 활성화 및 설정 방법

✅ 1. rc.local 파일 확인 및 권한 부여

 
chmod +x /etc/rc.d/rc.local ls -l /etc/rc.local
  • 실행 권한(+x)을 추가하여 rc.local 파일이 실행될 수 있도록 설정
  • ls -l 명령어로 심볼릭 링크(/etc/rc.local -> rc.d/rc.local) 확인

✅ 2. rc.local 서비스 활성화

1️⃣ systemd 서비스 설정 수정

 
vi /usr/lib/systemd/system/rc-local.service

맨 아래줄에 다음 줄을 추가:

 
[Install]
WantedBy=multi-user.target
  • multi-user.target은 기본적인 시스템 런레벨 3(네트워크 포함 터미널 모드)에서 rc.local을 실행하도록 지정하는 설정

✅ 3. systemd 데몬 재시작

 
systemctl daemon-reload
  • systemd 설정 변경을 반영하기 위해 데몬을 다시 로드

✅ 4. rc.local 서비스 실행 및 자동 시작 설정

 
systemctl start rc-local.service systemctl enable rc-local.service
  • start: 현재 세션에서 rc.local을 실행
  • enable: 시스템 재부팅 시 rc.local 서비스가 자동으로 실행되도록 설정

✅ 5. rc.local 서비스 상태 확인

 
systemctl status rc-local.service
  • active (running) 상태인지 확인
  • 오류 발생 시 journalctl -xe로 로그 확인 가능

✅ rc.local을 활용한 예제 (부팅 시 자동 실행)

1️⃣ 특정 서비스 자동 실행

 
echo "systemctl restart nginx" >> /etc/rc.local
  • 서버 부팅 후 nginx 서비스 자동 재시작

2️⃣ 네트워크 설정 적용

 
echo "ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up" >> /etc/rc.local
  • 부팅 시 특정 네트워크 설정 적용

3️⃣ 특정 프로그램 실행

 
echo "/usr/local/bin/my_script.sh &" >> /etc/rc.local
  • 백그라운드에서 my_script.sh 실행

📌 최종 정리

단계명령어설명

1️⃣ rc.local 실행 권한 부여 chmod +x /etc/rc.d/rc.local 실행 가능하도록 변경
2️⃣ systemd 설정 수정 vi /usr/lib/systemd/system/rc-local.service WantedBy=multi-user.target 추가
3️⃣ 데몬 재시작 systemctl daemon-reload systemd 설정 반영
4️⃣ rc.local 서비스 실행 systemctl start rc-local.service 현재 실행
5️⃣ 자동 실행 설정 systemctl enable rc-local.service 부팅 시 자동 실행
6️⃣ 서비스 상태 확인 systemctl status rc-local.service 활성화 여부 확인

📌 rc.local 파일 수정 설정

[root@jgshindb ~]# 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

 

 
[root@jgshindb ~]# chmod +x /etc/rc.d/rc.local
[root@jgshindb ~]# vi /usr/lib/systemd/system/rc-local.service

 


✅ rc.local 설정이 필요한 이유

  1. 부팅 시 특정 명령 자동 실행 가능
    • 서비스 재시작, 네트워크 설정, 특정 프로세스 실행 등에 유용
  2. 복잡한 systemd 서비스 생성 없이 간단하게 사용 가능
  3. 기존의 CentOS 6 환경과 호환 유지 가능

✅ rc.local 활성화 및 자동 실행이 필요하면 위의 절차를 따르세요! 🚀

LIST
📧 이메일 문의
by @ 2025 JGSHIN