make
開発Webサーバーを実行するために使用します。サーバーがシャットダウンしたら、いくつかのクリーンアップ操作を実行したいと思います。 + を押すとCtrlサーバーはシャットダウンしますが、Cこれによりmake
追加コマンドの実行が停止します。簡単なMakefileの例として、以下を提供します。
default:
sleep 10
echo hello
電話をかけてmake
時間が経過する前にCtrl+を押すCと、「こんにちは」は表示されません。私が試したこと(ベースこの回答):
-i
-k
または両方を使用して make を実行する- 2番目の項目を
-sleep 10
またはに変更します。sleep 10 | true
ベストアンサー1
私は答えを見つけましたスタックオーバーフロー:コマンドを2つに分け、「外部」コマンドからSIGINTをキャッチします。
external-target:
bash -c "trap 'trap - SIGINT SIGTERM ERR; echo hello; exit 1' SIGINT SIGTERM ERR; $(MAKE) internal-target"
internal-target:
sleep 10