Last Updated on 3월 2, 2024 by Jade(정현호)
rc.local
rc.local 은 부팅 시 자동으로 실행 명령어나 스크립트를 수행하는 동작을 하며 OS 부팅시 마다 매번 자동으로 실행되기를 원하는 명령어나 작업 스크립트를 파일에 입력하면 수행이 되게 됩니다.
부팅을 하면서 스크립트나 명령어를 자동으로 실행하도록 하는 방법에는 여러가지가 있으며 그 중에서 가장 쉽게 빠르게 할 수 있는 방법이 /etc/rc.local 을 사용하는 것이기도 합니다.
각 OS 마다 어느 버전 부터 해당 파일의 퍼미션과 서비스가 활성화가 기본적으로 되어 있지 않아서 사용하기 위해서 아래의 작업이 선행되어야 합니다.
포스팅 환경
CentOS: 7.9
우분투: 18.04
Fedora: 33
파일 생성
먼저 rc.local 파일을 생성 및 파일내 내용을 입력합니다.
• 우분투
파일을 생성 후 아래와 같이 입력합니다.
user$ sudo vi /etc/rc.local #!/bin/bash touch /tmp/test
• 페도라
파일 생성 후 심볼릭 링크를 생성합니다.
user$ sudo vi /etc/rc.d/rc.local #!/bin/bash touch /tmp/test user$ sudo ln -s /etc/rc.d/rc.local /etc/rc.local
• CentOS
파일이 생성되어 있으므로 별도의 생성은 하지 않아도 됩니다.
user$ ls -al /etc/rc.local lrwxrwxrwx. 1 root root 13 Jun 17 2020 /etc/rc.local -> rc.d/rc.local user$ sudo echo "touch /tmp/test" | sudo tee -a /etc/rc.local
* touch /tmp/test 이부분은 서비스가 정상적으로 실행되는지를 확인해보기 위해서 추가한 내역으로 서비스가 정상적으로 실행되었고 /etc/rc.local 이 수행되었다면 /tmp 아래 test 라는 파일이 생성될 것입니다.
파일 생성 여부로 해당 작업의 정상 유무를 확인할 수 있습니다.
퍼미션 권한 부여
이전 단계에서 생성 및 내용을 입력한 파일에 대해서 실행 가능 하도록 실행 퍼미션 권한 부여하도록 하겠습니다.
• 우분투
user$ sudo chmod 755 /etc/rc.local
• Fedora, CentOS
user$ sudo chmod 755 /etc/rc.d/rc.local
rc-local.service 파일 수정
rc.local 이 부팅 시 동작할 수 있도록 서비스 활성화 및 시작을 위해서 서비스 파일의 일부 수정이 필요 합니다.
3-1 파일 수정
공통 작업으로 rc-local.service 파일 맨 마지막에 [Install] 부분을 추가합니다.
user$ sudo vi /lib/systemd/system/rc-local.service [Install] WantedBy=multi-user.target
3-2 저장 후 reload 실행
user$ sudo systemctl daemon-reload
3-3 서비스 활성화, 시작, 상태 확인
user$ sudo systemctl enable rc-local user$ sudo systemctl start rc-local user$ sudo systemctl status rc-local
테스트 파일 생성 여부 확인
rc.local 파일 생성 과 내용 입력 시 테스트를 위해 touch 명령어를 입력하였습니다.
서비스가 정상 실행되었다면 touch 명령어를 통해서 파일이 생성이 되었을 것입니다.
4-1 파일 생성 여부 확인
user$ ls -al /tmp | grep test -rw-r--r-- 1 root root 0 Oct 20 15:28 test
4-2 touch 명령어 부분 삭제
파일이 정상적으로 생성된 것을 확인하였다면 rc.local 에서 touch 명령어 부분을 삭제하도록 합니다.
user$ sudo vi /etc/rc.local touch /tmp/test <== 삭제합니다
이제 /etc/rc.local 파일에 명령어나 실행할 스크립트를 추가하게 되면 부팅 시 실행이 되게 됩니다.
관련된 다른 글
Principal DBA(MySQL, AWS Aurora, Oracle)
핀테크 서비스인 핀다에서 데이터베이스를 운영하고 있어요(at finda.co.kr)
Previous - 당근마켓, 위메프, Oracle Korea ACS / Fedora Kor UserGroup 운영중
Database 외에도 NoSQL , Linux , Python, Cloud, Http/PHP CGI 등에도 관심이 있습니다
purityboy83@gmail.com / admin@hoing.io