この例では、実行に非常に長い時間(数時間)を要するコマンドを実行しています。
Makeまたはmake -j4を入力したかどうかは本当に覚えていません。
もちろん、それを停止してキーを押すか、履歴を確認してそれを知ることはできますが、それはプロセスを停止し、それが発生しないようにします(すでにmake -j4を実行している場合)。
プロセスを停止せずに、どのコマンドが実行されているかを知る方法はありますか?
コンピューターで実行されているmake
のすべてのインスタンスの完全なコマンドラインを表示する場合は、新しいターミナルを開いて次を試してください。
pgrep -a make
pgrep
は、コンピューター上のすべてのプロセスを検索するプログラムです。この場合、make
という名前のプログラムを探しています。オプション-a
は、一致する各プロセスのプロセスIDと完全なコマンドラインの両方をリストするようpgrep
に指示します。 (-a
がなければ、プロセスIDを返すだけです。)pgrepの多くのオプションの詳細については、man pgrep
を参照してください。
ターミナルウィンドウがアクティブになっている間、次のボタンを押すとプロセスを一時停止(中断)できます。 Ctrl+Z。次に、bg
と入力して、バックグラウンドでジョブをプッシュできます(ジョブはバックグラウンドで続行され、同時にコマンドラインで作業できます。これは、最後に&
を指定してジョブを開始するのと同じです。コマンドラインの)。次に、カーソル矢印(上下)を使用して、使用したコマンドを確認します。必要な場合(ただし、これは必須ではありません)、fg
と入力して、ジョブをフォアグラウンドに戻すことができます。
Stefan:^ Zのようなことをしてジョブを一時停止し、jobs
を実行します。複数のプロセスを実行している場合、一時停止したジョブを整理する必要がありますが、通常はコマンドラインが表示されます。次に、fg
を実行して実行を継続します。
これを動的に確認する良い方法は、topを実行することです。これにより、システム全体の状態とシステムで実行中のプロセスがわかります。
「ps ux」を実行すると、プロセスがpidおよびその他の情報とともに表示されます。必要に応じてスキルを使用してそれらの一部を強制終了できます。そのためのmanページは優れたリソースです。デバイスの待機などでハングします。-hupなどのプロセスに他のシグナルを送信したり、デーモンを再起動したりすることもできます。
Topは、プロセスサイズ、経過時間、現在のCPU状態、およびメモリとスワップのCPU状態を表示するので便利です。
私はよくmake.outログファイルで$ make>&make.out&を実行してからlessまたはtail -fを実行します。以来、makeはシェルセッションからプロセスとして切り離されています。