python:运行'nohup':如何摆脱消息?

问题描述 投票:-1回答:1

我有一个可变的程序列表,我想从一个cron作业开始。我至少暂时解决的解决方案是在python中编写实际的cron作业,然后运行列表,启动每个程序:

outf=open('the_command.log','w')
subprocess.Popen(['nohup','the_command', ...],stdout=outf)
outf.close()

这个问题是它创建了一个nohup.out文件 - 看起来每个进程都是一样的。如果我从命令行执行相同的操作,它可能看起来像:

$ nohup the_command ... > the_command.log 2>&1 

这工作正常,但我运行它时从nohup收到一条消息:

nohup: ignoring input and redirecting stderr to stdout

我试图将stderr重定向到/ dev / null,但结果是the_command.log为空。我怎么解决这个问题?

python nohup
1个回答
0
投票

我通过使用来自detach的不同命令http://inglorion.net/software/detach/解决了这个问题

但我现在认为这是不合适的。最好使用由cron作业脚本启动的oneshot服务,或者让你的cron条目启动onehot服务。

这样就没有必要分离,因为进程不是你的脚本,而是他们是主管的孩子。可以使用任何支持启动正常关闭服务并且在退出时不重新启动它的init。

© www.soinside.com 2019 - 2024. All rights reserved.