再起動前に起動された子プロセスの制御を取り戻すことができる、Python プログラムを再起動する安全な方法を探しています。
サブプロセスとスレッドを使用して、出力メッセージを継続的に生成する長期のstdout
/を監視します。stderr
command
サンプル コード スニペットは次のとおりです。
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でのみ必要です。