
現在、以下のようにシャットダウンをキャッチして処理する継続的に実行されるbashスクリプト(osx)があります。
trap onshutdown TERM
トラップに一時停止/再開を処理させるにはどうすればよいですか?
trap onsuspend ?
trap onresume ?
答え1
私はSIGTSTPとSIGCONT信号を探しています。この試み:
trap onsuspend TSTP
trap onresume CONT
答え2
プログラムが中断され、信頼できないため、名前付きパイプを設定して監視スクリプトを生成します。
5分または15分ごとに繰り返し、現在のタイムスタンプを名前付きパイプに書き込み、スリープモードに入ります。
その後、そのパイプからデータを読み取り、読み取り間で計算を実行できます。時間が1~2個以上ジャンプすると、すでに眠っているのです。
必要な時間の正確さに応じて、/private/var/log/system.logファイル(および可能であれば/private/var/log/system.0.log.gz)を追跡して、最後のスリープ/カーネルのロギングによって提供されるウェイクアップ時間です。
これは、信号に依存するよりも多くのタスクを実行します。アシスタントを独自に実行させ、必要な信号をスクリプトに送信することもできます。
1つは6つ、もう1つは66でした。