问题:无法让我的 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 秒来修复它 猜猜问题一定与脚本运行前没有准备好有关。 希望这对其他人有帮助
感谢所有花时间回答这个问题的人