
いくつかの情報をstdoutに印刷し、次のように実行するプログラムがあります。
watch -n 0.1 myprogram
myprogram
私の問題は、システム全体のミューテックスを解放するために適切なデストラクタを呼び出してきちんと終了する必要があることです。CTRL+を押すと死んできれいにC出る機会はありません。watch
myprogram
watch
返す前に子プロセスが完了するのを待つようにきちんと終了する方法はありますか?
ページman
は単に次のように言います。
より中止されるまで実行されます。
答え1
質問の最初の部分について」時計をきれいに終了する方法はありますか?「はい、信号を送信してプロセスを停止できます。
まずあなたが必要です実行中のプロセスID(PID)を確認してください。watch
。名前でこれを行うことができます。
pidof watch
またはユーザーによってUnix/linuxで特定のユーザーが作成したプロセスを表示する方法
ps -u ${USER} | grep -i watch | cut -d " " -f 1
それからwatch
信号を送信して停止します。良い
kill -IT ${PID}
kill -INT $(pidof watch)
質問の2番目の部分がもっとあります。信号処理情報。