Skip to main content
 首页 » 编程设计

linux之CRON 没有在重启时启动我的 python 脚本

2023年11月22日361Renyi-Fan

问题:无法让我的 python 脚本在重启时运行

我用 Nano 编辑 /etc/crontab

已编辑文件以供阅读(在文件中保留所有默认文本)

@reboot root screen -d -m -S Rusty /root/rustynail.py 

浏览这个网站,我看到很多对 PATH 的引用。 因为我指定了完整路径,所以我不认为这是问题所在。 很高兴被证明是错误的。

我已经通过将 CRONTAB 更改为来测试屏幕

@reboot root screen -d -m -S rusty ping 8.8.8.8 

这按预期工作

当我以 root 身份登录时,脚本运行正常。 尝试将 shell 更改为 shell/bin/bash。

CRONTAB 中的其他东西工作正常。 我每天都有一个rsync启动 以及重启时的 mount.cifs。

我已经设置了日志目录并查看了/var/log/syslog, 使用命令 grep CRON var/log/syslog

输出=

(root) cmd (screen -d -m -S rusty /root/rustynail.py 

任何想法将不胜感激 Linux 新手,很抱歉,如果很明显。


好的,经过进一步测试,我发现了这一点。 如果我使用 crontab -e 并将 python 脚本设置为每分钟运行一次

"* * * * *" screen -d -m /root/rustynail.py  >> /var/log/myscript.log 2?&1 

它按预期工作!我认为这证明它不是 PATH 或 BASH 问题。

如果我将 * * * * * 替换为 @reboot screen -d -m.. ... 。 ..等 它不起作用。

我的第一个想法是,在网卡启动之前正在创建屏幕并运行脚本,因此当脚本尝试将数据发送到外部地址时失败,导致脚本停止并关闭屏幕窗口.

但是

mounts.cifs 到我的 NAS 的脚本之后,我还有另一个 @reboot,那个脚本每次都能正常工作。 拜托,欢迎任何想法。

请您参考如下方法:

通过在 Python 脚本开始执行任何操作之前延迟 30 秒来修复它 猜猜问题一定与脚本运行前没有准备好有关。 希望这对其他人有帮助

感谢所有花时间回答这个问题的人