비전 시스템 프로그램이 PC에서 실행 중이고 항상 실행되고 있어야 하는데 가끔 프로그램에 문제가 있어 종료되는 경우가 있습니다. 그래서 프로그램이 실행되고 있지 않은지 확인하고 실행시키기 위한 스크립트가 필요합니다.
저는 cron 작업을 사용하여 작업을 수행하고, 스크립트를 실행하기 위해 다음 cron 작업을 작성했습니다.
*/1 * * * * /home/masoud/Desktop/vision3/cron.sh
cron.sh는 다음과 같습니다.
cd "${0%/*}"
if pgrep -x "video" > /dev/null
then
echo "running"
else
/home/masoud/Desktop/vision3/video &
fi
cron.sh는 작업을 올바르게 실행하고 cron 작업은 스크립트를 실행하지만 잠시 종료합니다. 잠시 동안 웹캠 LED가 켜지는 것을 볼 수 있습니다. 내가 뭘 잘못했나요?
답변1
Cron 작업은 데스크톱 애플리케이션 관리에 실제로 적합하지 않습니다. 반복 쉘 스크립트에서 애플리케이션을 시작하는 것이 가장 쉽습니다.
#!/bin/sh
cd /home/masoud/Desktop/vision3
while :; do ./vision; done
이렇게 하면 vision
멈출 때마다 다시 시작됩니다.
프로그램을 중단하고 싶다면 "종료 전략"을 계획할 수도 있습니다. 이렇게 하면 됩니다:
#!/bin/sh
cd /home/masoud/Desktop/vision3
while [ ! -f no_vision ]; do ./vision; done
그런 다음 프로그램을 중지하고 싶을 때,
touch /home/masoud/Desktop/vision3/no_vision
닫으면 쉘 스크립트도 중지됩니다.