使用SIGHUP杀死python脚本有什么后果?

时间:2014-02-21 08:59:46

标签: python signals

有时我会同时运行许多python脚本实例。要以字母方式进行,我使用tmux(终端多路复用器),当我填写完成后,或者当我必须修复某些内容时,我会终止tmux会话而不是退出每个会话手动(最多100个)脚本。

杀死tmux会话实际上会杀死bash进程,这些进程是从它们执行的python进程的父进程。如果我理解正确,则表示SIGHUP信号被发送到所有python进程。

它很快清理一切 - 内存被释放(似乎),cpu被释放,套接字被关闭,显然端口被释放。优点是它比退出每个脚本更快更简单。

我的问题是:这种习惯会有什么可能的后果吗?如果我不关心脚本本身的输出 - 可能会造成任何其他损害,例如使操作系统更脏,更重等等?有更好的做法吗?

1 个答案:

答案 0 :(得分:1)

调用SIGHUP处理程序。如果未安装SIGHUP处理程序,则会调用signal(7)手册页所示的默认操作。

要确保您的脚本关闭所有文件,释放所有资源等,install a SIGHUP handler执行相应的操作。