理由もなくプログラムが停止することがあるため、プログラムを無限ループ内で実行しようとしています。ただし、プログラムが再起動されないように Ctrl-C を押したいと思います。
Ctrl-C でプログラムを強制終了させたくありません。プログラムが終了するまで待ってから、再起動しないでください。
theprogram
ワイン プログラム (utorrent) です。
theprogram
右上の「x」をクリックするのと同じように安全に終了するようにする方法を教えてくれたボーナスポイント。コマンド ラインから手動kill
で実行するか、Ctrl-C キーを押すと、クリーンアップ コードを実行できません。したがって、再起動を停止しようとする私の試み。
SIGINT のトラップに関する他のいくつかの質問を確認しましたが、これを行う方法がわかりませんでした。
誰でもこのコードを修正できますか? 私のコードはtheprogram
、Ctrl-C が押されると、theprogram
クリーンアップせずに終了してループを終了するようです。
#!/bin/bash
EXIT=0
trap exiting SIGINT
exiting() { echo "Ctrl-C trapped, will not restart utorrent" ; EXIT=1;}
while [ $EXIT -eq 0 ] ; do
wine theprogram
echo "theprogram killed or finished"
date
echo "exit code $?"
echo "sleeping for 20 seconds, then restarting theprogram..."
sleep 20
done
echo "out of loop"