2017-01-31 9 views
0

これは愚かな質問かもしれませんが、生成されたサブプロセスに関連付けられたプロセス名を編集するために、Pythonマルチプロセッシングモジュールを使用する方法がありますか?サブプロセスの名前付け

コマンドラインユーティリティtopまたはpsを使用して、実行中のサブプロセスとハングアップしている可能性のあるサブプロセスを確認することができます。例えば。私は、その後のプロセスを参照することが望ましいであろうトップを使用して、n個のサブプロセスを開始MyScript.pyと呼ばれるスクリプト持っていると言う:

MyScript.py 
MyScript.py <tag1> 
Myscript.py <tag2> 
... 
Myscript.py <tagn> 

いうだけで

MyScript.py 
MyScript.py 
MyScript.py 
... 
MyScript.py 

答えて

0

号のPython以外には何のコントロールの上に持っていません"top"コマンドの出力に表示されるプロセス名。これはOSによって管理されます。

multiprocessing.Processクラスを使用している場合、プロセスIDはオブジェクトの​​属性で利用できるため、出力してtopの出力と相互参照することができます。あるいは、プログラムをsubprocessモジュールで呼び出して出力をフィルタリングして、関連する出力のみを提供することもできます。

+0

スレッドの主な記録とクライアントの要求に応じて報告することができますが、一度は簡単な方法を期待していました。とにかく、ありがとうとにかく – cpaitor

0

は(それは少しハックようだが)あなたが何ができるかのように、subprocess経由でプロセスを開始することです:

その後
import subprocess 
subprocess.call(["python", "myscript.py", "-tag", "tag1"]) 

あなたは正しい関数に分岐するためにあなたの__main__を適応させる必要があります-tag引数を参照してください。これは、Linux上でサブプロセスがfork()であり、Pythonファイルを新たに解釈するのではなく、マルチプロセッシングの仕組みであるWindows上で、過剰なものと思われるかもしれません。

+0

私はこれについて考えましたが、問題は、サブプロセスとメインプロセスの間でメモリを渡すことになります。 – cpaitor