1

Pythonで実行中のジョブのリストを取得するにはどうすればよいですか?すなわち。基本的に、jobsコマンドの出力を文字列、リスト、またはセットで表示したいと思います。

私は現在試しています

 p1 = subprocess.Popen(['jobs'], shell=True, stdout=subprocess.PIPE)
 n = p1.communicate()[0].strip()

しかし、これは機能していないようです

4

1 に答える 1

6

あなたはそれを自分で追跡しなければなりません。シェルはすべてのサブプロセスジョブを追跡しますが、あなたはシェルではないため、自分で追跡する必要があります。 jobsBashシェルの組み込みコマンドであり、実行される実際の実行可能ファイルではありません。そうするとsubprocess.Popen(['jobs'], shell=True)、新しいshallを生成し、そのジョブを要求ます。これは、実行中のジョブがない新しいシェルであるため、もちろん空です。

あなたがあなた自身の実行中の仕事を追跡することができないならば、あなたはより困難な時間を過ごすでしょう。Linuxでは/proc、親として自分を持っているすべてのプロセスを解析して探すことができます。Windowsでは、pywin32などのラッパーまたはWin32APIにアクセスするためのモジュールを使用してこのようなことを行うことができます。ctypes

于 2012-09-19T18:55:42.087 に答える