다음과 같은 루프가 포함된 쉘 스크립트가 있습니다.
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에 경로에 대한 다른 옵션을 추가할 수 있습니다.