问题:无法让我的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
任何想法都将不胜感激 Noob对Linux,对不起,如果显而易见的话。
好的,经过进一步测试后我发现了这个。
如果我使用crontab -e
并将python脚本设置为每分钟运行
"* * * * *" screen -d -m /root/rustynail.py >> /var/log/myscript.log 2?&1
按预期工作!我认为这证明它不是PATH或BASH问题。
如果我将* * * * *
替换为@reboot screen -d -m.. ... . .. etc
它不起作用。
我的第一个想法是,正在创建屏幕并且脚本在网卡启动之前运行,因此当脚本尝试将数据发送到外部地址时,它会失败,导致脚本停止并关闭屏幕窗口
BUT
我的NAS @reboot
的脚本之后我有另一个mounts.cifs
,每次都可以正常工作。
拜托,欢迎任何想法。
答案 0 :(得分:1)
通过在Python脚本开始执行任何操作之前放置30秒延迟来修复它 在脚本运行之前,猜测问题必须与未准备好的事情有关。 希望这有助于其他人
感谢任何花时间在这个问题上的人