ユーザーは、ファイルの作成を続行するにはCtrl-Cを押します。

ユーザーは、ファイルの作成を続行するにはCtrl-Cを押します。

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

おすすめ記事