1

Linuxコマンド「ジョブ」は、バックグラウンドで実行されているコマンドを表示するようです。「emacs &」のように入力してから「jobs」と入力すると、表示されます。しかし、他の端末で「jobs」と入力すると、何も機能していないことがわかります。また、別の端末で ">history" と入力すると、異なる結果が表示されます。なんで?
「マンジョブ」を心がけていますが、ジョブに関するマニュアルはありません。

4

2 に答える 2

4

" jobs"、" bg"、" fg"、" kill"、" wait" などのコマンドはすべて、ジョブ制御用の組み込みシェル コマンドであり、現在実行中のシェルにのみ関連しています。参照: http://linuxcommand.org/lts0080.php

  • pts/3に接続すると、その端末でシェル (たとえばbash ) を実行すると、コマンド プロンプトが表示され、プロセスを開始したり、コマンドを入力したりできます。

  • pts/5に接続している場合、そのターミナルで別のシェル ( bashも) を実行すると、別のコマンド プロンプトが表示され、プロセスを開始したり、コマンドを実行したりできます。

これらは異なる bash プロセスであり、それぞれに独自のコマンド履歴とジョブがあります。そのため、ある bash プロセスのバックグラウンド プロセスを別の bash プロセスから見ることはできません。これらは、実行中の 2 つの別個の bash プロセスです。

于 2013-10-01T16:06:46.017 に答える