web-dev-qa-db-ja.com

bashスクリプトからの履歴書の一時停止をトラップする方法

私はbashスクリプト(osx上)を継続的に実行していますが、現在、そのように終了をトラップして処理しています

trap onshutdown TERM

トラップをサスペンド/レジュームのように処理するにはどうすればよいですか?

trap onsuspend ?

trap onresume ?

2
Pradeep

あなたはシグナルSIGTSTPとSIGCONTを探しています。これを試して:

trap onsuspend TSTP
trap onresume  CONT
4
penguin359

プログラムは単に中断され、確実に通知されないため、代わりに名前付きパイプを設定してセンチネルスクリプトを生成します。

5分または15分ごとにループして、現在のタイムスタンプを名前付きパイプに書き込んでからスリープします。

次に、そのパイプから読み取り、読み取りの間に計算を行うことができます。時間が1つまたは2つ以上のpingをジャンプする場合は、スリープ状態になっています。

必要な時間がどれだけ正確であるかに応じて、最後のスリープ/ウェイク時間の/private/var/log/system.logファイル(および場合によっては/private/var/log/system.0.log.gz)を調整できます。カーネルによってログに記録されます。

信号に頼るよりも手間がかかるでしょう。ヘルパーを実行して、スクリプトに必要なシグナルを送信することもできます。

1つのうち6つ、他の6つ。

0
bmike