我使用以下python代码执行C程序(可执行):
proc = Popen(cmd, stdout=PIPE, bufsize=10)
thread = Thread(target=streamstdout, args=(proc.stdout, conn))
thread.daemon = True
thread.start()
while 1:
time.sleep(1)
conn.settimeout(0.01)
try:
data = conn.recv(1024)
except socket.timeout:
continue
except socket.error:
print 'Connection break during execution.'
if proc.poll() == None:
proc.terminate()
print 'Execution terminated'
break
data = data.strip()
if data: print 'Received: ', data
conn是TCP连接。 当我在控制台中使用
启动python脚本时,一切都正确python script.py
可执行文件的CPU负载约为预期的30%。
但是,如果我在启动时在crontab中启动python-script或使用
nohup python script.py &
并通过调用此命令抑制python脚本的输出消息,可执行文件将始终以最大CPU负载(98%-100%)运行。 我认为问题是无法在控制台上输出的python-script的输出...但是为什么会这样?
我很感谢每一个想法或意见。
更新:我附加了while循环。但是我认为这与问题无关。