Pythonで実行中のジョブのリストを取得するにはどうすればよいですか?すなわち。基本的に、jobs
コマンドの出力を文字列、リスト、またはセットで表示したいと思います。
私は現在試しています
p1 = subprocess.Popen(['jobs'], shell=True, stdout=subprocess.PIPE)
n = p1.communicate()[0].strip()
しかし、これは機能していないようです
あなたはそれを自分で追跡しなければなりません。シェルはすべてのサブプロセスジョブを追跡しますが、あなたはシェルではないため、自分で追跡する必要があります。 jobs
はBashシェルの組み込みコマンドであり、実行される実際の実行可能ファイルではありません。そうするとsubprocess.Popen(['jobs'], shell=True)
、新しいshallを生成し、そのジョブを要求します。これは、実行中のジョブがない新しいシェルであるため、もちろん空です。
あなたがあなた自身の実行中の仕事を追跡することができないならば、あなたはより困難な時間を過ごすでしょう。Linuxでは/proc
、親として自分を持っているすべてのプロセスを解析して探すことができます。Windowsでは、pywin32などのラッパーまたはWin32APIにアクセスするためのモジュールを使用してこのようなことを行うことができます。ctypes