![CentOS 시작 시 백그라운드에서 쉘 스크립트를 실행하는 방법은 무엇입니까? [복사]](https://linux55.com/image/121148/CentOS%20%EC%8B%9C%EC%9E%91%20%EC%8B%9C%20%EB%B0%B1%EA%B7%B8%EB%9D%BC%EC%9A%B4%EB%93%9C%EC%97%90%EC%84%9C%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
다음과 같은 루프가 포함된 쉘 스크립트가 있습니다.
while true
do
if ... ; then
...
else
...
break
fi
done
OS가 시작될 때 이 스크립트가 백엔드를 실행하도록 하고 싶습니다. 이 스크립트를 시작 스크립트로 /etc/rc.d/local.rc에 추가해 보았습니다. 그러나 운영 체제 시작 시간이 너무 깁니다. 운영 체제가 시작된 후에는 이 스크립트가 더 이상 존재하지 않습니다.
그렇다면 OS가 시작될 때 이 스크립트를 백엔드에 어떻게 추가합니까? 백엔드에서도 이 스크립트를 수동으로 시작해야 합니다. 감사합니다~
답변1
시작 시 스크립트를 실행하려면 다음으로 시작해야 합니다.
/etc/cron.d/myrebootscript
내용이 있는
@reboot <user> <command>
예:
@reboot joe /usr/local/bin/myscript
스크립트는 시작 중에 예측할 수 없는 시간에 실행됩니다. 예를 들어, 스크립트가 네트워크가 나타날 때까지 기다려야 한다면 루프를 추가해야 합니다 /usr/local/bin/myscript
.
#! /bin/bash
# wait for 10.1.2.3 is pong'ing
while ! ping -c1 -W1 10.1.2.3 > /dev/null ; do
sleep 1
done
do_my_command_here
/etc/rc.local
이제 더 이상 사용되지 않습니다.
답변2
모든 init 스크립트가 실행된 후에 실행되도록 /etc/rc.d/rc.local 파일에 이 스크립트를 포함시킵니다.
.bash_profile에 경로에 대한 다른 옵션을 추가할 수 있습니다.