import os
import daemon
if __name__ == '__main__':
here = os.path.dirname(os.path.abspath(__file__))
out = open('checking_print.log', 'w+')
with daemon.DaemonContext(working_directory=here, stdout=out):
for i in range(1, 1000):
print('Counting ... %s' % i)
4条答案
按热度按时间7qhs6swi1#
DaemonContext对象允许在创建对象时重定向stdout/stderr/stdin。例如:
您应该能够
cat checking_print.log
并看到print语句的输出。DaemonContext对象的一个很好的参考是PEP 3143。
ioekq8ef2#
问题是python-daemon关闭了所有文件描述符,包括stdout
给你的DaemonContext调用。
xpcnnkqh3#
如果你的代码中有错误,它将不会被写入文件。参见http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html
尝试创建此文件:
gcuhipw94#
如果它已经作为守护进程运行,你很可能需要强制重定向STDOUT、STDERR等。