【问题标题】:CRON not starting my python script on rebootCRON 没有在重启时启动我的 python 脚本
【发布时间】: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,认为它是操作系统的一部分。谢谢你的时间。

标签: linux crontab


【解决方案1】:

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

感谢所有花时间在这个问题上的人

【讨论】:

  • 我通常在 crontab 中正确执行此操作,以避免更改对我的脚本的所有其他调用;只需将命令设为sleep 30 && /root/rustynail.py,它应该可以在不影响对脚本的其他调用的情况下工作。
猜你喜欢
  • 2021-08-04
  • 1970-01-01
  • 2021-05-09
  • 1970-01-01
  • 2018-08-26
  • 2021-08-15
  • 2015-10-25
  • 2022-01-20
  • 1970-01-01
相关资源
最近更新 更多