我有以下shell脚本:
#!/bin/sh
exec 2>&1
echo "Starting ..."
python /home/services/example.pypython脚本只包含一个print命令。上面的脚本是一个守护进程,并且启用了一个简单的日志机制(multilog)。然而,在main/log/current中,我看到一行“开始.”但不是从python脚本中打印出来的命令。
我是打错电话了还是忘了什么?
我试图运行的python脚本是::
from time import sleep
import sys
sys.stdout.write("Hello World")
print "Hello World"
while 1:
sys.stdout.write("Hello world")
sleep(10)发布于 2016-05-24 22:07:50
反复运行
sys.stdout.write("Hello world")...just创建了表单Hello worldHello worldHello world的一个巨大行,但不能保证它会刷新。
在没有隐式(如通过print)的内容上添加换行符,并在直接使用sys.stdout.write()时刷新缓冲区
while 1:
sys.stdout.write("Hello world\n") # add a newline
sys.stdout.flush() # flush the buffer发布于 2016-05-26 04:30:58
我也面临着同样的问题。
解决方案是禁用输出缓冲。请参阅Disable output buffering
在您的示例中,将守护进程工具运行脚本更新为:
python -u /home/services/example.py-u标志禁用Python缓冲。
https://stackoverflow.com/questions/37424533
复制相似问题