首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >start-stop-daemon和python

start-stop-daemon和python
EN

Stack Overflow用户
提问于 2011-12-21 00:26:19
回答 2查看 6.1K关注 0票数 10

我正在尝试使用start -stop-daemon启动python脚本:

代码语言:javascript
复制
sudo /sbin/start-stop-daemon --start --pidfile /home/loop.pid \ 
--user www-data --group www-data -b --make-pidfile --chuid www-data \
--exec /usr/bin/python /home/loop.py --verbose

但是在我的进程中没有python脚本。我做错了什么?

loop.py:

代码语言:javascript
复制
import time
while True:
    print "working..."
    time.sleep(3)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-21 00:42:07

我尝试了您的脚本和命令行,它在我的机器上工作。是否确定您的脚本位于/home/loop.py

此外,不要期望看到这些打印,因为您指定了-b (背景)选项,因此进程将从您的终端分离。出于测试目的,尝试在不使用-b的情况下运行它,然后可以使用-stdout选项将标准输出重定向到日志文件:

代码语言:javascript
复制
sudo /sbin/start-stop-daemon --start --pidfile /home/loop.pid \ 
--user www-data --group www-data -b --make-pidfile --chuid www-data \
--exec /usr/bin/python /home/loop.py --verbose -stdout /var/log/loop.log
票数 3
EN

Stack Overflow用户

发布于 2017-12-06 22:48:37

如果你--exec (或--startas)一个嵌套的shell,而不是直接执行python,那么你可以在那里进行重定向(根据this answer):

代码语言:javascript
复制
start-stop-daemon --start --quiet --chuid $DAEMONUSER    \
 --make-pidfile --pidfile $PIDFILE --background       \
 --startas /bin/bash -- -c "exec $DAEMON $DAEMON_ARGS > /var/log/some.log 2>&1"

一旦我意识到输出是缓冲的(我的脚本编写得并不多),我就会非常高兴地记录我的Python stdout!然后我找到了this article,它使用'stdbuf‘比默认的更急切地刷新到输出(也很好地解释了这一点):

代码语言:javascript
复制
start-stop-daemon --start --background \
            --pidfile $PIDFILE --make-pidfile --startas /bin/bash \
            -- -c "exec stdbuf -oL -eL $DAEMON $DAEMONARGS > $LOGFILE 2>&1"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8578604

复制
相关文章

相似问题

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