리눅스 systemd에서 rc.local 활성화 방법
systemd를 사용하는 CentOS 7 이상의 리눅스 버전에서는 /etc/rc.local에 명령어 및 스크립트를 추가해도 부팅 시 실행되지 않습니다. rc.local 파일을 부팅 시 실행시켜주는 rc-local 서비스를 시작하고, 부팅 시 자동 시작하도록 서비스 활성화 방법에 대해 알아보겠습니다.
rc.local
systemd에서 rc.local 파일은 이전 리눅스 버전과의 호환성을 위해 제공되며, 기본 설정으로 비활성화되어 있습니다. 그리고 rc.local 파일에 스크립트를 등록해서 사용하기보다는 systemd 서비스 등록을 추천합니다. rc-local 서비스는 SysVinit에서와 같이 마지막에 실행되지 않으며, systemd의 서비스의 하나로써 다른 서비스들과 함께 병렬 실행됩니다.
/etc/rc.local 파일 내용은 아래와 같으며, /etc/rc.d/rc.local 파일을 부팅 시 자동 실행하려면 실행 권한을 추가해야 한다고 안내하고 있습니다. 참고로 /etc/rc.local 파일은 /etc/rc.d/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
환경 정보
- 운영 체제(OS) : CentOS Linux release 7.9.2009 (Core)
- 로그인 계정 : root
rc.local 파일 실행 권한 추가하기
리눅스 부팅 후 자동 실행할 수 있도록 파일 실행 권한을 추가합니다.
chmod +x /etc/rc.d/rc.local
rc-local 서비스 상태 확인하기
systemctl status rc-local.service
rc-local 서비스 시작하기
systemctl start rc-local.service
부팅 시 자동 실행 rc-local 서비스 활성화하기
그래픽 모드가 아닌 multi-user 모드로 부팅 시 서비스 파일에 부팅 모드를 설정합니다.
vi /usr/lib/systemd/system/rc-local.service
/usr/lib/systemd/system/rc-local.service 파일의 제일 하단에 아래 내용을 추가합니다.
[Install]
WantedBy=multi-user.target
systemctl enable rc-local.service
rc-local 서비스 자동 실행 등록 확인하기
systemctl is-enabled rc-local.service
마무리
CentOS 7 이상의 systemd를 사용하는 리눅스 서버에서 rc.local 파일의 내용을 자동 실행하는 rc-local.service 등록 방법에 대해 알아보았습니다. rc-local 서비스로 이전 리눅스 버전에서의 시작 프로그램들을 그대로 사용할 수 있지만, systemd의 서비스로 마이그레이션하여 사용하는 것을 추천합니다.
- 블로그 : www.infracody.com
이 글이 유익했나요? 댓글로 소중한 의견을 남겨주시거나 커피 한 잔의 선물은 큰 힘이 됩니다.