cronを使用してPythonスクリプトを実行すると失敗します。

cronを使用してPythonスクリプトを実行すると失敗します。

次のように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:

次のコマンドを使用して、CLIで正常に実行できるPythonスクリプトを作成しました。

 /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:

Q:私のcronjobは1分ごとに実行されません。私が何を見逃しているかを提案してください。

答え1

クローンの行は次のようになります。

* * * * * /home/Script_to_monitor_power/power_alarm_t2.py

非標準の場所でPythonを実行している場合は、このPythonスクリプトをシェルスクリプトにラップしてPATHとLD_LIBRARY_PATHを追加するのが賢明かもしれません。

また、シェルスクリプトを作成し、このスクリプトをcronに追加してPython実行可能ファイルを明示的にポイントし、Pythonを実行してデフォルトの環境変数を追加することもできます。

#!/bin/bash
source ~/.bash_profile
/path/to/python /home/Script_to_monitor_power/power_alarm_t2.py

関連情報