CentOS 시작 시 백그라운드에서 쉘 스크립트를 실행하는 방법은 무엇입니까? [복사]

CentOS 시작 시 백그라운드에서 쉘 스크립트를 실행하는 방법은 무엇입니까? [복사]

다음과 같은 루프가 포함된 쉘 스크립트가 있습니다.

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에 경로에 대한 다른 옵션을 추가할 수 있습니다.

관련 정보