2

再起動前に起動された子プロセスの制御を取り戻すことができる、Python プログラムを再起動する安全な方法を探しています。

サブプロセスとスレッドを使用して、出力メッセージを継続的に生成する長期のstdout/を監視します。stderrcommand

サンプル コード スニペットは次のとおりです。

class PS(threading.Thread):
    def __init__(self, command):
        threading.Thread.__init__(self)
        self.command = command

    def run(self):
        try:
            process = subprocess.Popen(self.command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
            for line in iter(process.stdout.readline, ''):
                ''' do something to line'''

私のpythonメインプログラムが終了すると(たとえば、pidを殺す)、その子プロセス(クラスcommandによって実行されるPS)はバックグラウンドプロセスとしてまだ生きています。

stdout私の質問は、 /を監視し続けることができるように、python で子プロセスを「再接続」する方法はありますstderrか?

PS Linux環境、より具体的にはubuntu 14.04でのみ必要です。

4

1 に答える 1