信号を受信した後にのみ更新される時計はありますか?

信号を受信した後にのみ更新される時計はありますか?

watch git log ...私は少し高価な注文を実行するウィンドウがあります。実際にはこのように見えるほど高価で、watch -n30 timeout 10 git log ...システムにあまり害を及ぼさない。

ただし、これを30秒ごとに実行する必要はありません。 gitコマンドを実行するときにのみ実行できます。サポートwatchされている場合は、更新したいときはいつでもSIGUSR1信号を送ることができ、コンピューティングのwatchパフォーマンスが大幅に節約されます。

この目標をどのように達成できますか?

ベストアンサー1

これはシェルスクリプトです。以下を行うために必要です。

  1. まだ何もしない
  2. 信号に対するフックの実行

そのような落とし穴はtrap 'git log' SIGUSR1完成します2.1.おおよそのシミュレーションと完璧に完了できます sleep $aLongTime

tmp=`mktemp`; echo 'int main(){ pause(); return 0; }' > "$tmp";
gcc -x c "$tmp" -o pause #create a `pause` executable

これにより、シェルスクリプトは次のようになります。

echo $$ #identify self
trap 'git log' SIGUSR1 
while :; do ./pause; done

おすすめ記事