コマンドラインから bash スクリプトを停止するにはどうすればよいですか?

コマンドラインから bash スクリプトを停止するにはどうすればよいですか?

OS X で XCode を実行するために使用する bash スクリプトがありますが、これには数分かかります。エラーに気付いた場合に停止するためのキー コマンドが見つかりません... DOS ではCtrl+C/に慣れていますCtrl+Zが、どちらも機能しないようです。(標準の OS X ターミナルで) 何を探しているのでしょうか?

答え1

ここで役立つキー操作がいくつかあります。

Ctrl+ はフォアグラウンド プロセスに SIGINT を送信し、シェル コードCなどでシグナルをトラップしない限り、プロセスを終了するはずです。trap INT ...

Ctrl+ はZSIGSTOP を送信する必要がありますが、シグナルをトラップしない限り、プロセスは再び一時停止します。

キーシーケンスのマッピングは、端末設定を含むいくつかのハードルを飛び越えます。stty -aはコンピュータ上で何と言っているでしょうか? 出力で を見てくださいintr。これが SIGINT をトリガーするキープレスです。何も設定されていない場合は、次のように設定する必要があります。stty intr ^C

他の人が言っているように、別のウィンドウからプロセスを強制終了することもできます。

答え2

Ctrl+がC機能しない場合は、新しいターミナルタブを開いて次のように入力してください。

killall [process name]

[process name]bash スクリプトの名前です (これは OS X のアクティビティ モニタで確認できます)。

答え3

以下の解決策を試すことができます:

  • このキーボードの組み合わせを試してください: Ctrl+ AltGr+8
  • 新しいターミナルを開いて実行しますpkill -f script_name

答え4

他のユーザーのコメントに加えて、 を送信し、 と同じであるCtrl+を使用することもできますが、コア ダンプも生成します。 を無視するプログラムは、を無視しないことがよくあります。\SIGQUITSIGINTSIGINTSIGQUIT

に基づくkill のマニュアルページSIGTERM、または を任意のプロセスに送信することもできますSIGKILL。これを実現するには、プロセス テーブルでプロセスを検索し ( と入力ps)、kill -15 [pid]を送信するにはと入力しSIGTERMkill -9 [pid]を送信するには と入力しますSIGKILL(SIGKILL は無視できず、どのような場合でもプロセスを強制終了します)。

ソース 1そしてソース 2

関連情報