Huny's Dev Blog

huny.dev
rc.local에 등록한 명령을 지연 시작하기

rc.local에 등록한 명령을 지연 시작하기

리눅스에서 시작 프로그램을 등록하여 사용하는 경우 여러 서비스들이 실행된 후에 시작 프로그램이 시작되도록 하고 싶을 경우 at 명령을 사용하여 지연시작을 구현할 수 있다.

Hun Jang
Hun Jang Mar 29, 2024

Linux에서 rc.local을 활용하여 시스템 부팅 시 실행할 시작 프로그램을 등록할 때 Windows 서비스의 “지연된 시작”처럼 명령어의 실행을 지연시킬 수 있다. Linux도 서비스(systemlctl) 등록을 할 수 있지만 rc.local을 사용하면 실행할 명령어만 간단하게 등록할 수 있다. crontab에서 @reboot를 활용할 때도 동일하다.

at 명령은 최소 분 단위, 초 단위 설정 불가하다. /etc/rc.d/rc.local 에 실행 권한이 있는지 확인한다.

 

rc.local에서 직접 sleep을 주어 다음 명령을 실행할 때까지 지연시킬 수도 있다.

위와 같이 명령어 라인보다 sleep이 위에 오도록 하면 작성한 명령은 sleep으로 지정한 시간만큼 대기한 후 명령을 실행한다. 그러나 위와 같은 방식으로 명령을 지연 시작하는 경우 시스템 시작 후 sleep이 되는 동안 systemd 서비스들이 시작되지 않는 것을 알 수 있다.

rc.local에 sleep 60 정도 길게 주고 시스템을 재시작 한 후 $ systemctl status 명령어를 실행해 보면, job이 queued 된 상태로 stating 상태에 서비스들이 머무는 것을 확인할 수 있다. 따라서 rc.local에서는 sleep을 주기보다는 at 명령어로 job을 추가하여 딜레이는 주는 것을 권장한다.

 
 

You might also like

BlogPro logo
Made with BlogPro