4

常に実行される (無限ループがある) python スクリプトがありますが、実行中に入力を受け入れることができるようにしたいと考えています。バックグラウンドで実行され、いつでも入力できるようにしたい

scriptname stop

それを停止します(またはそのようなもの)。そうすれば、シャットダウン メソッドを呼び出して情報を保存し、終了することができます。

現在、ターミナルのフォアグラウンドで実行されており、キーボード割り込みによって停止できないため、これを強制終了するには、ターミナルを閉じるか、Python を強制終了するしかありません。

どうすればこのようなことができますか?

4

2 に答える 2

3

を使用しsupervisordます。プロセスを管理するために存在し、それらを開始および停止するためのコマンド インターフェイスを提供します。

スーパーバイザがプロセスを強制終了すると、SIGTERM (または選択したその他のシグナル) が送信されます。したがって、きれいにシャットダウンするには、そのシグナルを処理する必要があります。

SIGTERM の処理方法については、この質問を参照してください: Python - すべてのシグナルをトラップする

プロセスは引き続き独自のパイプで入力をリッスンし、その方法で出力を送信できます。

于 2012-11-20T18:01:04.363 に答える