2012-04-30 62 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