2017-12-30 122 views
-1

私のアプリケーション用の2つのPythonスクリプトがあります。 私はそれらを起動時に起動したいが、1つ(gunicorn/mon)スクリプトだけが起動する。Crontabは再起動時にPythonスクリプトを実行しません

私のcrontab:

@reboot /home/daniel/mon/start.sh 
@reboot /home/daniel/bot1/start.sh 

月のstart.sh

#!/bin/bash 
/usr/bin/screen -dmS bb-mon /bin/bash -c 'cd /home/daniel/mon && 
/usr/local/bin/gunicorn app:app --bind 0.0.0.0:9999' 

作品。

BOT1 start.sh

#!/bin/bash 
/usr/bin/screen -dmS bb-bot /bin/bash -c 'cd /home/daniel/bot1 && 
/usr/bin/python3 app.py' 

が動作していません。私は表示される画面のセッションでいくつかの出力をテストしました。画面セッションも開始されますが、pythonスクリプトは起動しません。 python呼び出しの後に> log.txtのようなものを追加した場合、ファイルは空です。 画面を表示せずにスクリプトを起動することもできません。

答えて

-1

cronが正しく設定されている場合は、cronジョブが失敗したときに電子メールを受け取る必要があります。

bashbashを呼び出すscreenを呼び出す複雑なセットアップのため、エラーが記録されないことがあります。

@reboot /usr/bin/python3 /home/daniel/bot1/app.py 2>&1 > /var/log/bot1.log 

私は上記の例でやったように、ログファイルにapp.pyから任意の出力をキャプチャすることをアドバイスします:

は、スクリプトの絶対パスを使用して、cronで直接のPythonを実行してみてください。

+0

これはバグではありません。既にテスト済み^^ –

+0

Pythonを直接実行してテストしたところで、*出力*エラーや実行中のプロセスが表示されない場合は、おそらく 'app.py'を調べるべきでしょう。デバッグ用の 'print'呼び出しを追加することもあります。 –

+1

Sry、そうです。私は今app.pyをデバッグする必要があります^^ phew .... –

関連する問題