2012-04-30 7 views
0

pythonインタプリタがSIGTERMシグナルを受け取ったときにstderrに表示される "Terminated"メッセージを抑制することはできますか?私はそれを静かに終わらせたい。pythonスクリプトがSIGTERMを受信したときに終了メッセージを表示させない方法

私はSIGINTなどの別の信号を使用しようとしましたが、この場合、pythonは実行中のスクリプトTracebackと "KeyboardInterrupt"メッセージを出力します。

+0

あなたは 'signals'モジュールで見たことがありますか? – mgilson

+0

はい、私の解決策は、自分自身のシグナルハンドラをインストールし、そこから終了することでした。シェルはTerminatedメッセージを出力しなくなりました。 –

+0

私はそれがうまくいくと思った。 – mgilson

答えて

1

"Terminated"はシェルによって印刷されます。シェルのマニュアルを参照して、それを無効にする方法を確認してください。 SIGINTについては、実際にこれをキャッチすることができます!トレースバックを印刷しないようにするには、単に

try: 
    do_stuff() 
except KeyboardInterrupt: 
    pass 

またはここに示すように、シグナルハンドラを登録するには、あなたのプログラム全体をラップ:How do I capture SIGINT in Python?

+0

bashがTerminatedメッセージを表示しないようにするにはどうすればよいですか?同様の質問はここではできないと述べていますが、あなたができることはstderrを/ dev/nullにリダイレクトすることです。 –

+0

私はそれがトリックを行うべきbashの 'set + m'だと信じています – ch3ka

関連する問題