美文网首页Python
Python中使用signal捕获关闭信号

Python中使用signal捕获关闭信号

作者: 潇Shawn纹 | 来源:发表于2017-06-29 14:25 被阅读0次

    Python 捕获信号示例

    通常用于循环执行的服务中。直接插入以下代码

    import signal
    def shutdownFunction(signalnum, frame):
        pass
    for sig in [signal.SIGINT, signal.SIGHUP, signal.SIGTERM, signal.SIGKILL]:
        signal.signal(sig, shutdownFunction)
    

    具体的 signal 使用参见这篇文章
    对于*nix系统,主要捕获这下面的退出信号即可:

    [
    signal.SIGINT, # 键盘中 Ctrl-C 组合键信号
    signal.SIGHUP, # nohup 守护进程发出的关闭信号
    signal.SIGTERM, # 命令行数据 kill pid 时的信号
    ]
    
    

    Linux 部分终止信号说明

    • 信号 值 处理动作 发出信号的原因
    SIGHUP 1 A 终端挂起或者控制进程终止 
    SIGINT 2 A 键盘中断(如break键被按下) 
    SIGQUIT 3 C 键盘的退出键被按下 
    SIGILL 4 C 非法指令 
    SIGABRT 6 C 由abort(3)发出的退出指令 
    SIGFPE 8 C 浮点异常 
    SIGKILL 9 AEF Kill信号 
    SIGSEGV 11 C 无效的内存引用 
    SIGPIPE 13 A 管道破裂: 写一个没有读端口的管道 
    SIGALRM 14 A 由alarm(2)发出的信号 
    SIGTERM 15 A 终止信号 
    SIGUSR1 30,10,16 A 用户自定义信号1 
    SIGUSR2 31,12,17 A 用户自定义信号2 
    SIGCHLD 20,17,18 B 子进程结束信号 
    SIGCONT 19,18,25 进程继续(曾被停止的进程) 
    SIGSTOP 17,19,23 DEF 终止进程 
    SIGTSTP 18,20,24 D 控制终端(tty)上按下停止键 
    SIGTTIN 21,21,26 D 后台进程企图从控制终端读 
    SIGTTOU 22,22,27 D 后台进程企图从控制终端写
    

    相关文章

      网友评论

        本文标题:Python中使用signal捕获关闭信号

        本文链接:https://www.haomeiwen.com/subject/wsvmcxtx.html