【发布时间】:2013-12-04 13:20:00
【问题描述】:
问题:无法让我的 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.. ... . .. etc
它不起作用。
我的第一个想法是,屏幕正在创建并且脚本在网卡启动之前运行,因此当脚本尝试将数据发送到外部地址时失败,导致脚本停止并且屏幕窗口关闭.
但是
在我的 NAS 的 mounts.cifs 脚本之后,我还有另一个 @reboot,这个脚本每次都能正常工作。
请,欢迎任何想法。
【问题讨论】:
-
您是否尝试使用
crontab -e安装任务? -
您是以 root 用户还是简单用户安装 crontab?
-
我使用 nano /etc/crontab。不要使用 crontab -e 进行编辑。不确定我是否安装了 CRONTAB,认为它是操作系统的一部分。谢谢你的时间。