crontab을 사용해 보았지만 몇 분으로 제한되어 있습니다. 다른 옵션이 있나요?
나는 또한 비슷한 것을 시도했습니다.
watch -n 1 sh /path-to-script/try.sh
하지만 터미널을 닫을 때마다 중지됩니다. 나는 백그라운드에서 계속 작동하는 것을 원합니다.
답변1
while
루프 및 nohup
.
the_script.sh:
while :; do
/path-to-script/try.sh
sleep 1
done
the_script.sh
끊김의 영향을 받지 않고 실행 :
nohup /path/to/the_script.sh > /dev/null
/dev/null
.txt 파일의 내용이 중요하다면 파일 경로로 바꾸세요 stdout
.
답변2
귀하가 제공한 정보에 따르면 가장 좋은 답변은 가장 간단한 답변일 수 있습니다. 무한 루프 및 1초 지연이 있는 쉘 스크립트를 사용하십시오.
#!/bin/bash
# Program that checks if MySQL is running
while [ 1 = 1 ]; do
<your code here>
sleep 1
done
스크립트가 터미널 외부에서 실행되도록 하세요. 이런 식으로 백그라운드에서 실행됩니다.
보다 구체적인 답변을 얻으려면 어떤 명령을 사용하고 실행되지 않는 경우 어떻게 해야 하는지 알아야 합니다. 예를 들어. 알림이나 이메일을 보내세요.
답변3
이 루틴은 이미 실행 중이 아닌 한 매초마다 try.sh를 계속 실행합니다. 이미 실행 중인 경우 이전 실행이 끝날 때까지 일시 중지됩니다.
loop_script.sh:
while true; do
if [[ ! $(pgrep -x /path-to-script/try.sh) -gt 1 ]]; then
/path-to-script/try.sh
fi
sleep 1
done
다음과 같이 실행하세요:
nohup /path/to/loop_script.sh & > /dev/null
그런 다음 클릭하여 ^C
콘솔을 다시 가져옵니다.
다음 명령을 사용하여 kill
중지 해야 합니다.loop_script.sh