首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Daemontools shell脚本日志到多日志

Daemontools shell脚本日志到多日志
EN

Stack Overflow用户
提问于 2016-05-24 21:52:26
回答 2查看 614关注 0票数 0

我有以下shell脚本:

代码语言:javascript
复制
#!/bin/sh
exec 2>&1
echo "Starting ..."
python /home/services/example.py

python脚本只包含一个print命令。上面的脚本是一个守护进程,并且启用了一个简单的日志机制(multilog)。然而,在main/log/current中,我看到一行“开始.”但不是从python脚本中打印出来的命令。

我是打错电话了还是忘了什么?

我试图运行的python脚本是::

代码语言:javascript
复制
from time import sleep
import sys

sys.stdout.write("Hello World")
print "Hello World"

while 1:
    sys.stdout.write("Hello world")
    sleep(10)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-24 22:07:50

反复运行

代码语言:javascript
复制
sys.stdout.write("Hello world")

...just创建了表单Hello worldHello worldHello world的一个巨大行,但不能保证它会刷新。

在没有隐式(如通过print)的内容上添加换行符,并在直接使用sys.stdout.write()时刷新缓冲区

代码语言:javascript
复制
while 1:
    sys.stdout.write("Hello world\n")  # add a newline
    sys.stdout.flush()                 # flush the buffer
票数 1
EN

Stack Overflow用户

发布于 2016-05-26 04:30:58

我也面临着同样的问题。

解决方案是禁用输出缓冲。请参阅Disable output buffering

在您的示例中,将守护进程工具运行脚本更新为:

代码语言:javascript
复制
python -u /home/services/example.py

-u标志禁用Python缓冲。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37424533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档