Linux で Python スクリプトをサービスまたはデーモンのように実行する方法 質問する

Linux で Python スクリプトをサービスまたはデーモンのように実行する方法 質問する

特定の電子メール アドレスをチェックし、新しい電子メールを外部プログラムに渡す Python スクリプトを作成しました。このスクリプトを Linux のデーモンまたはサービスにするなどして、24 時間 365 日実行させるにはどうすればよいですか。プログラム内で終了しないループも必要ですか。それとも、コードを複数回再実行するだけで実現できますか。

ベストアンサー1

ここでは 2 つのオプションがあります。

  1. スクリプトを呼び出す適切なcron ジョブを作成します。cron は、設定したスケジュールに従って定期的にスクリプトを起動する GNU/Linux デーモンの一般的な名前です。スクリプトを crontab に追加するか、スクリプトへのシンボリックリンクを特別なディレクトリに配置すると、デーモンがバックグラウンドでスクリプトを起動するジョブを処理します。詳細については、Wikipedia を参照してください。さまざまな cron デーモンがありますが、GNU/Linux システムには既にインストールされているはずです。

  2. スクリプトがデーモン化できるようにするには、何らかのPython アプローチ(たとえば、ライブラリ) を使用します。はい、単純なイベント ループが必要になります (イベントはタイマー トリガーであり、スリープ関数によって提供される可能性があります)。

2. を選択することはお勧めしません。なぜなら、実際には cron 機能を繰り返すことになるからです。Linux システムのパラダイムは、複数のシンプルなツールを連携させて問題を解決できるようにすることです。デーモンを作成する必要がある追加の理由 (定期的にトリガーすることに加えて) がない限り、他のアプローチを選択してください。

また、daemonize をループで使用してクラッシュが発生した場合、その後は誰もメールをチェックしなくなります (この回答に対するコメントでIvan Nevostruevが指摘しているように)。一方、スクリプトが cron ジョブとして追加された場合は、再度トリガーされるだけです。

おすすめ記事