0
我有我在後臺運行的命令的代碼片段:如何使用pexpect.spawn命令在後臺運行?
from sys import stdout,exit
import pexpect
try:
child=pexpect.spawn("./gmapPlayerCore.r &")
except:
print "Replaytool Execution Failed!!"
exit(1)
child.timeout=Timeout
child.logfile=stdout
status=child.expect(["[nN]o [sS]uch [fF]ile","",pexpect.TIMEOUT,pexpect.EOF])
if status==0:
print "gmapPlayerCore file is missing"
exit(1)
elif status==1:
print "Starting ReplayTool!!!"
else:
print "Timed out!!"
這裏,雖然它在後臺運行腳本退出的過程中spawn
也被甚至被殺害後
如何做到這一點?
'&'沒有做任何事 - 這是在後臺運行進程的bash語法,並且您沒有通過bash運行它。我認爲如果你在產生這個孩子的時候傳遞'preexec_fn = os.setsid',那麼它應該從它的控制tty中分離出來,並且防止它被殺死。或者,如果您可以修改子流程中的代碼,則可以使其忽略SIGHUP。 –