私は以下を実行するpythonプログラムを書いています:
import subprocess
import time
def fun1():
terminal1 = ['gnome-terminal']
terminal1.extend(['-x', 'sh', '-c', '"roscore"'])
pid = subprocess.Popen(terminal1, stdout=subprocess.PIPE)
time.sleep(3)
print "success1"
fun2()
def fun2():
terminal2 = ['gnome-terminal']
terminal2.extend(['-x', 'sh', '-c', '"rosrun rosserial_python serial_node.py /dev/ttyACM0"' ])
pid2 = subprocess.Popen(terminal2, stdout=subprocess.PIPE)
print "success2"
fun1()
fun1 は正常に動作します。fun2 が機能するようにすべてが完了するまでしばらく続くため、3 秒待ちます (両方を同時に起動することはできません。fun2 は fun1 を待機する必要があり、fun2 の前に終了することはありません)。
問題はfun2の実行時に発生します。どこが間違っているのかわかりません。fun1と同じコードですが、gnome-terminalが数ミリ秒間表示されてから消えます...
なにか提案を??
前もって感謝します