2012-04-30 63 views
0

當python解釋器收到SIGTERM信號時,是否可以禁止在stderr上打印的「終止」消息。我希望它靜靜地終止。如何在python腳本收到SIGTERM時禁止終止消息

我試過使用不同的信號,如SIGINT,但在這種情況下,python會打印出運行腳本Traceback和「KeyboardInterrupt」消息。

+0

你看了'signals'模塊? – mgilson

+0

是的,我的解決方案是安裝我自己的信號處理程序並從那裏退出。外殼不再打印終止消息。 –

+0

我認爲這可能會奏效。 – mgilson

回答

1

「終止」由您的shell打印,請查閱您的shell的手冊以瞭解如何禁用它。 至於SIGINT,你實際上可以抓住這個!爲了避免打印回溯,則只需將你的整個程序

try: 
    do_stuff() 
except KeyboardInterrupt: 
    pass 

或註冊一個信號處理程序,如下所示:How do I capture SIGINT in Python?

+0

任何想法如何阻止bash打印終止消息?這裏有一個類似的問題,說它不能完成,最好的辦法是將stderr重定向到/ dev/null,這對我來說不是一個真正的解決方案,因爲我仍然需要stderr輸出。 –

+0

我相信這是'設置+米'在bash應該做的伎倆 – ch3ka