ビジョンシステムプログラムは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 ジョブはスクリプトを実行しますが、しばらく終了します。しばらくの間、Webカメラの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
閉じると、シェルスクリプトも停止します。