python中常用的signal 信号
• SIGINT 终止进程 中断进程 (ctrl+c)
• SIGTERM 终止进程 优雅杀死,留有时间(kill -15 pid)
• SIGKILL 终止进程 杀死进程 (kill -9 pid)
• ctrl+c 终止当前会话(运行的脚本,命令)
• kill -9 pid 强制终止进程
• kill -15 pid 给进程留有时间,先关闭有关的程序,再将程序关闭(优雅的杀死进程)
查看python 进程
ps -ef |grep python
python3中提供的信号
import signal
dir(signal)
Linux中提供的信号
// A code block
kill -l
根据python的信号进行捕获操作
import signal,time
import sys
def term_sig_handler(signum, frame):
print ('catched singal: %d' % signum)
sys.exit()
if __name__ == '__main__':
signal.signal(signal.SIGTERM, term_sig_handler) #kill pid
signal.signal(signal.SIGINT, term_sig_handler) #ctrl -c
# signal.signal(signal.SIGKILL, term_sig_handler) #kill -9 pid 此功能无效
while True:
print ('good')
time.sleep(5)
ctrl+c(kill -2 pid)
kill -15 pid
kill -4 pid