gpt4 book ai didi

Python popen 进程不会保持运行

转载 作者:太空宇宙 更新时间:2023-11-04 11:07:21 30 4
gpt4 key购买 nike

我有一个使用 os.popen 在后台运行 tcpdump 的 Python 进程。然后它读取并处理来自 tcpdump 的输出。该进程作为守护进程在后台运行。当我从命令行执行这个过程时,它运行得很好——它启动 tcpdump 并正确读取输出。但是,我希望这个进程在启动时自动运行,并且我已经在 cron 中指示它这样做。当我这样做时,我的进程正在运行(根据 ps 命令)但 tcpdump 没有。

在 cron 中启动进程与从命令行启动它的行为有什么不同的原因吗?我的代码看起来像这样:

p = os.popen('/usr/sbin/tcpdump -l -i eth0')
while True:
data = p.readline()
# do something with data

最佳答案

cron 会在出现问题时向您发送电子邮件。所以第一件事就是查看您的邮箱(运行 mailx 来访问它)。

如果没有邮件,确保进程在出现问题时将消息写入 stdout/stderr。

此外:检查您使用的用户是否正确。在某些系统上,tcpdump 需要作为 root 运行,因此您需要将作业安装到 root 的 crontab(而不是那个您的普通用户)。

关于Python popen 进程不会保持运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24701190/

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