본문 바로가기

OS/Linux

부팅시 데몬 구동 설정 ( systemctl, rc.local, chkconfig, ntsysv)

 

부팅 시 자동으로 데몬을 실행시키는 방법에 대해 알아보겠습니다.

가장 대표적인 예로 httpd 서비스를 부팅 시 자동으로 실행시키는 방법은

가장 간단하게는

sudo systemctl enable httpd

로 설정을 할 수 있습니다.

 

오늘은 systemctl외에도 rc.local, chkconfig, ntsysv에 대해 알아보겠습니다.

1. rc.local

rc.local은 systemctl과 마찬가지로 부팅 시 자동으로 실행 명령어나 스크립트를 수행하는 동작을 하고,

여러 가지의 방법 중 가장 쉽고 빠르게 할 수 있습니다.

 

CentOS, Rocky)

먼저 설정파일을 수정합니다.

sudo vi /etc/rc.local

에서

제일 밑에

touch /tmp/test # 추가 or

# 커맨드로 추가하기
sudo echo "touch /tmp/test" | sudo tee -a /etc/rc.local

을 추가합니다.

해당 명령어는 /tmp에 test라는 빈 파일을 생성하는 명령어입니다.

만약 스크립트 자동 시작이 성공적으로 완료되었으면 해당 경로에 test 파일이 생성되어 있을 것입니다.

 

Ubuntu)

우분투는 centos, rocky와는 다르게 설정 파일을 직접 만들어야 합니다.

sudo vi /etc/rc.local

# 아래 스크립트 붙여넣기
#!/bin/bash

touch /tmp/test

 

이제 rc-local.service 파일을 수정합니다.

이 과정은 부팅 시 동작할 수 있도록 서비스 활성화 및 시작을 위한 설정입니다.

sudo vi /lib/system/rc-local.service

# 제일아래 추가
[Install]
WantedBy=multi-user.target

서비스를 등록하기 위해 많은 옵션들이 필요한데 세부적으로 알아보고 싶으신 분은 링크를 통해 확인할 수 있습니다.

 

해당 파일이 잘 실행되도록 실행 권한도 부여합니다.

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

 

저장 후 reload를 실행합니다.

sudo systemctl daemon-reload

 

서비스 활성화, 시작, 상태확인은

sudo systemctl enable rc-local
sudo systemctl start rc-local
sudo systemctl status rc-local

로 확인 가능합니다.

 

이제 재부팅 후 테스트 파일이 생성되었는지 확인하면 됩니다.

파일을 확인하는 방법은

ll /tmp | grep test

를 사용하면 되고, 재부팅 후 파일이 생성되었다면 rc.local을 잘 설정해주었다는 뜻입니다.

이제 아까 추가했던 touch /tmp/test 부분을 삭제하고 원하는 서비스의 이름을 적어주시면 됩니다.

 

2. chkconfig

CentOS 6 이하의 데몬 자동 시작할 때 사용합니다.

 

chkconfig의 리스트 확인 하는 방법

chkconfig --add list

이 명령어를 치면 runlevel이라는 개념이 나오는데

링크로 이동하여 쉽게 확인할 수 있습니다.

 

서비스 등록

chkconfig --add [파일명]

 

runlevel 지정은

chkconfig --level [runlevel] [스크립트 파일명] on

으로 할 수 있습니다.

 

마지막으로 서비스를 on 하고 off 하는 방법은

chkconfig [파일명] on
chkconfig [파일명] off

를 사용합니다.

 

3. ntsysv

패키지를 사용하여 레드햇 계열 os에만 가능한 방법입니다.

yum install -y ntsysv

로 설치 후

ntsysv로 실행하면 됩니다.

 

ntsysv

해당 화면에서 스페이스바를 눌러 선택 또는 취소를 할 수 있고

탭을 활용하여 Ok, Cancel 버튼으로 이동할 수 있습니다.

 

이상으로 부팅 시 데몬 구동 설정을 마치겠습니다. 감사합니다.