gpt4 book ai didi

在cron中执行popen的Python问题

转载 作者:太空狗 更新时间:2023-10-29 21:17:05 26 4
gpt4 key购买 nike

我使用 popen 在 Python 脚本中执行命令,并通过 cron 调用它。
Cron 会调用此脚本,但如果我手动调用它,行为会有所不同。

来源:

from subprocess import Popen, PIPE

pp = Popen('/usr/bin/which iptables', shell=True, stdout=PIPE)

data = ''
for ln in pp.stdout:
data = data+ln

if data == '':
print 'ko'
else:
print 'ok : '+data

手动:

# python /home/user/test.py
> : /sbin/iptables

通过 cron(在/tmp/err_cron 中):

* * * * * /usr/bin/python /home/user/test.py >> /tmp/err_cron
ko
ko
ko

为什么cron不能正常运行这个脚本?

最佳答案

通常当进程从 cron 运行时,PATH 被设置为一个非常严格的值(我的 crontab 的手册页说 /usr/bin:/bin) .您可能需要添加:

PATH=/usr/bin:/bin:/sbin

到您的 crontab 文件的顶部。

关于在cron中执行popen的Python问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1602830/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com