我使用的是 FreeBSD 变体,如下所示:
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power: uname -a
FreeBSD ROUTER.local 10.1-RELEASE-p15 FreeBSD 10.1-RELEASE-p15 #0 c5ab052(releng/10.1)-dirty: Sat Jul 25 20:20:58 CDT 2015 root@pfs22-amd64-builder:/usr/obj.amd64/usr/pfSensesrc/src/sys/pfSense_SMP.10 amd64
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power:
我编写了一个 python 脚本,可以在 CLI 中使用以下命令成功运行:
/usr/local/bin/python2.7 /home/Script_to_monitor_power/power_alarm_t2.py
python 脚本包含一个 shebang 行,如下所示:
#!/usr/bin/env python2.7
python2.7的位置如下:
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power: where python2.7
/usr/local/bin/python2.7
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power:
我的目标是将上面的脚本作为 cronjob 运行。所以我使用以下命令使我的脚本可执行
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power: chmod +x power_alarm_t2.py
我已经编辑了 crontab 如下:
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power: crontab -l
* * * * * /usr/local/bin/python2.7 /home/Script_to_monitor_power/power_alarm_t2.py
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power:
我也这样做:
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power: cron reload
cron: cron already running, pid: 43420
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power:
现在当我这样做时:
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power: ps -ef | grep cron
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power:
问:我的 cronjob 没有每 1 分钟运行一次。请建议我缺少什么?
答案1
你的 cron 中的行应该是:
* * * * * /home/Script_to_monitor_power/power_alarm_t2.py
如果您从非标准位置运行 python,也许明智的做法是将此 python 脚本包装在 shell 脚本中并添加 PATH 和 LD_LIBRARY_PATH。
您还可以尝试制作 shell 脚本并将此脚本添加到 cron 中,以明确指向 python 可执行文件来执行 python 并添加您的主环境变量:
#!/bin/bash
source ~/.bash_profile
/path/to/python /home/Script_to_monitor_power/power_alarm_t2.py