cron ジョブを使用して、Python スクリプトを含むタスクを実行したいと思います。
タスクの bash スクリプトは次のようになります。
#!/bin/bash
...
python ./script.py &
...
次のように crontab を介して呼び出されます。
* 8 * * * ./task.sh
これは、ドックに表示されたときにこの厄介なアイコンが表示され、現在の入力デバイスのフォーカスを盗み、タスクが起動したときに入力している可能性のあるものを中断することを除いて、私のニーズに完全に適合します。
python script.py
Terminal.app を介してコマンドを実行した場合と同様に、Python にバックグラウンドで実行するように指示する方法はありますか?
編集:Matplotlib が原因のようです。https://github.com/matplotlib/matplotlib/issues/12918/matplotlib.use("Agg")
CLI からの実行中にインタラクティブ環境を無効にするために使用すると、問題が回避されます。
これはあなたの問題に対する答えではありませんが、この詳細をコメントに入れることはできないので、ここに追加すると、デバッグに少し役立つかもしれません...
私は Perl スクリプトを (あるディスクを別のディスクにバックアップするために) 毎晩実行していますが、この動作は見たことがありません。見ているときに実行するように cron を変更しただけで、Perl スクリプトにはこれが表示されませんでした。
そこで、次の Bash および Python スクリプトで再試行しました。
#!/bin/bash
echo Starting Bash...
python3 /Users/jim/Documents/scripts/hello.py &
sleep 3
echo Ending Bash...
そして
#!/usr/bin/env python3
import time
print ("Hello, world!\n")
time.sleep(60)
print ("Goodnight, moon!\n")
そして cron ジョブ:
04 * * * * /Users/jim/Documents/scripts/hello.sh >> ~/Library/Logs/test.log 2>&1
あなたが示している振る舞いが理解できません。Python (または Perl) にはドック アイコンはありません。実際、そのような通常の Unix 実行可能ファイルにドック アイコンが表示されるのはほとんど見たことがありません。
Python アイコンを右クリック/Ctrl キーを押しながらクリックし、[オプション] -> [Finder に表示] を選択すると、どの Python が呼び出されますか? スクリプトを手動で実行したときに呼び出されるものとは異なりますか?
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加