私は、実行に約45 [分]かかる「長い」Pythonスクリプトを持っています。私は別の( 'スケジューラー'スクリプト)pythonスクリプトを使ってこの長いスクリプトを実行します。ターミナルを使って 'スケジューラー'スクリプトを実行すると、すべてが完全に機能します(つまり、長いスクリプトは問題なく実行されます)。CronはPythonスクリプトを終了しますか?
私はいくつかの苦労がありましたが、最終的に毎分cronを実行するための 'スケジューラー'スクリプトの追加に成功しました。それで今は他のスクリプトを実行してOKです。ここで
は問題です:スクリプト(つまり、「スケジューラ」によって「RUN」中であるが)という行がある時はいつでも:
print "hello"
または任意の「印刷」ステートメントを、cronジョブが実行され、 20〜30秒後に終了します。 'print'ステートメントを削除すると、cronはジョブを正常に実行し、終了しません。
私はこの状況を修正したいと思いますし、スクリプトにいくつかの 'print'ステートメントがあっても実行し続けます。どのようにそれを行うためのヒント?
P.S. 「スケジューラ」内から、他のすべてのPythonスクリプトを '実行'するには、
subprocess.Popen([sys.executable, command])
を使用します。
ありがとうございます。私はどのように現在の出力を指示するか分からない。何か案は?また、私はcronからメールを受け取ったことはありません。定義する必要のある設定はありますか? – user3262424
メールでは、すべての* nixユーザーが自分のシステム上に持つローカルメールシステムを意味します。出力をファイルにリダイレクトするには、>リダイレクト演算子を使用します: 'python scheduler.py> output.log' – Aphex
Aphexにありがとう。だから私は出力をファイルに向ける方法を知っています。私はEvolution(私はUbuntu 10.04を使用)で電子メールアカウントを設定し、Cronから電子メールを受け取ったことはありませんでした。どうすれば修正できますか? – user3262424