시작 시 무한 루프 실행

시작 시 무한 루프 실행

시작 시 10분마다 주소를 ping하고 결과를 파일에 기록하는 명령을 실행하고 싶습니다. 이제 10분 간격으로 ping 및 파일 쓰기를 수행하는 방법을 알아냈습니다.

while true; do my-command-here; sleep 600; done

내 질문은 이것을 넣을 수 있습니까, /etc/init.d/rc.local아니면 넣어야합니까 /etc/rc.local, 아니면 완전히 다른 곳에 두어야합니까? 입니다. 무한 루프이기 때문에 특히 걱정됩니다. 그래서 시작 스크립트 중 하나에 넣을 수 있는지 잘 모르겠습니다.

도움을 주시면 대단히 감사하겠습니다. 우분투 12.04.5를 사용하고 있습니다

답변1

실제로는 무한 루프가 아닙니다. 이는 10분마다 실행해야 하는 작업입니다. 따라서 작업은 작업 스케줄러에 들어갈 수 있습니다 cron.

명령을 실행 crontab -e하고 파일 맨 아래에 다음 줄을 추가합니다.

*/10 * * * * /path/to/my-command-here

my-command-here실행 가능한 스크립트( chmod u+x my-command-here)인지, 첫 번째 줄이 #!스크립트 인터프리터의 이름(일반적으로 #!/bin/bash) 으로 시작하는지 확인하세요 .

패턴의 각 항목은 */10 * * * *분(0-59), 시간(0-23), 일(1-31), 월(1-12) 및 요일(0-6, 여기서 0=일요일)에 매핑됩니다. .

답변2

/etc/init.d/rc.local에 넣을 수 있나요? 아니면 /etc/rc.local이나 다른 곳에 넣어야 하나요?

에 넣으면 rc.local서브셸에 넣고 백그라운드로 포크해야 합니다. 마지막 줄은 rc.local이어야 하며 exit 0차단되지 않습니다. 즉, 모든 포그라운드 활동은 간략해야 합니다.

(while true
    do my-command-here
    sleep 600
done) &

( )서브쉘에 넣고 &백그라운드에 두세요.

문제가 발생하면,이 Q&A를 확인하세요디버깅 정보 rc.local.

관련 정보