
セミコロンで区切られた複数の bash コマンドを実行しています:
% long-running-command-I-want ; another-command-I-dont
はまだ実行中です。当然ながら、まだ はlong-running-command-I-want
ありません。しばらく待機していた を強制終了せずに、 を事前に強制終了/キャンセル/実行を防止したいと思います。それは可能ですか? できる場合、どのようにすればよいですか?pid
another-command-I-dont
another-command-I-dont
long-running-command-I-want
答え1
bash
別のシェルを実行すると、続行するプログラムを実行している のPID を見つけることができます。これが の場合bashPID
、次のコマンドで割り込み信号を送信します。
kill -2 bashPID
これにより、コマンド ラインの残りの部分の実行が停止します。
オプションとして、元のシェルでCtrl-と入力してz、実行中のプログラムを一時的にバックグラウンドで停止することができます。これにより、コマンド ラインの残りの部分が続行され、割り込み信号によってフラッシュされます。その後、フォアグラウンドで続行するかバックグラウンドで続行するかに応じて、fg
または を使用して実行中のプログラムを再開できますbg
。