2016-04-02 13 views
0

私はcrontabを使用して毎時実行するPythonスクリプトを取得しようとしていますが、動作させることはできません。CrontabとPythonのプログラムが完全に実行されていない

Pythonプログラムはうまく動作し、手動でターミナルから実行すると完了します。

$ python /home/pi/Documents/Project/Base_Prog.py 

私のcrontabそうのような設定です:

# For example, you can run a backup of all your user accounts 
# at 5 a.m every week with: 
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ 
# 
# For more information see the manual pages of crontab(5) and cron(8) 

SHELL=/bin/sh 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 

# m h dom mon dow command 

@reboot /usr/bin/python /home/pi/Documents/Project/Base_Prog.py 

0 * * * * /usr/bin/python /home/pi/Documents/Project/Base_Prog.py 

0 * * * * /usr/bin/python /home/pi/Documents/SimpleCronTest.py 

は私はしかし明確にしましょう、私は、出力ファイルを作成し、簡単なテストスクリプトを試してみましたが、それが働いたon this similar post.提案を行いました。しかし、同じ設定の同じcrontabの下では、私のプログラムは完了しません。

興味深い点は、スクリプトの開始時にTOPを使用すると、Pythonウィンドウが一時的にポップアップしてから再び消えることです。だから、私はcronが少なくとも仕事の一種であると仮定します。

私が追加しました:

#!/usr/bin/env 

PythonのラインをBase_Prog.pyファイルの先頭に。 私のPythonプログラムは、1つのファイルから入力を見つけてその結果を別のものに書き込むAPIスクレイパーです。プロジェクトディレクトリ内のすべてのファイルは、chmod 777を使って完全な書き込み権限を持っています。

私は、この。

UPDATE

簡単なテストとsyslogに私のプログラムの両方の出力ログは次のとおりです。

Apr 2 14:29:01 raspberrypi CRON[1455]: (pi) CMD (python /home/pi/Documents/Project/Base_Prog.py) 
Apr 2 14:29:01 raspberrypi CRON[1456]: (pi) CMD (python /home/pi/Documents/CronTest.py) 
+0

あなたのスクリプトはどのような作業をしていますか? – luminousmen

+0

ここにあなたのスクリプトのコードを入れてください –

答えて

0

私は完全な解決策があると思う:

まず上シェバング行を追加しますPythonスクリプトの先頭:

#!/usr/bin/env python 

標準出力を使用して、スクリプト作業場合、またはあなたが間違っているかを知る必要がある場合のchmod + X

でスクリプトを実行可能にします:あなたがする必要がある

0 * * * * -means the cron will run always when the minutes are 0 (hourly) 
+0

私はSHBBANGの行の有無にかかわらずテストしました。プログラム自体とディレクトリ内のすべてのファイルは、chmod 777から必要なすべてのアクセス権を持っています。私は>> tmp.logを追加しましたが、実行されているはずのディレクトリの後ろに出力がありません。注:私はテストしているときから、将来2〜3分になるように時間を変更しています。最後の行が意味するものがあれば、毎回1時間待たずにいます。 –

0

0 * * * * /usr/bin/python /home/pi/Documents/Project/Base_Prog.py >> tmp.log 

そして、ちょうど明確にしますターミナルから実行するだけでなく、すべての手がかりを実行するcronの出力を参照してください。恐らく、いくつかのパーミッション/オーナーシップ・エラーやそれらの行に沿ったものがあります。

0 * * * * python /home/pi/Documents/Project/Base_Prog.py 1> /dev/null 2> /home/pi/Documents/Project/Base_Prog.err 

を、あなたは手がかりを/home/pi/Documents/Project/Base_Prog.err後を表示することができます:cronの実行からは、ビューにファイルに出力を送信することができます。または、あなたに電子メールで送ることもできます:

0 * * * * python /home/pi/Documents/Project/Base_Prog.py 1> /dev/null 2>&1 | mail -s "Base Program Output" [email protected] 
関連する問題