Python中常用信号signal类型实例

yipeiwu_com6年前Python基础

本文研究的主要是Python中的Signal 信号的相关内容,具体如下。

常用信号类型

  1. SIGINT 终止进程 中断进程,不可通过signal.signal()捕捉(相当于Ctrl+C)
  2. SIGTERM 终止进程 软件终止信号,可通过signal.signal()捕捉(默认信号,当os.kill()没有指明信号类型时,默认的是该信号)
  3. SIGKILL 终止进程 杀死进程,不可捕捉(相当于linux下的kill命令,windows下使用会抛出异常)
  4. SIGALRM 闹钟信号 可以通过signal.alarm()和os.kill()发送该信号,可通过signal.signal()捕捉
  5. SIGQUIT 退出进程 和SIGTERM类似,可通过signal.signal()捕捉

a.py

#coding=utf8 
import signal,os,time 
def onsignal_term(a,b): 
  print '收到SIGTERM信号' 
 
def onsignal_quit(a,b): 
  print '收到SIGQUIT信号' 
 
def onsignal_alrm(a,b): 
  print '收到SIGALRM信号' 
   
signal.signal(signal.SIGTERM,onsignal_term) 
signal.signal(signal.SIGQUIT,onsignal_quit) 
signal.signal(signal.SIGALRM,onsignal_alrm) 
signal.alarm(10) 
while 1: 
  print '进程id:',os.getpid() 
  time.sleep(2) 

b.py

import os,signal,time 
os.kill(5097,signal.SIGTERM) 
time.sleep(5) 
#如果进程被终止后面的信号不会起作用 
os.kill(4976,signal.SIGINT) 
os.kill(5006,signal.SIGKILL) 
os.kill(5071,signal.SIGQUIT) 
os.kill(5097,signal.SIGALRM) 

总结

以上就是本文关于Python中常用信号signal类型实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

Tensorflow 同时载入多个模型的实例讲解

有时我们希望在一个python的文件空间同时载入多个模型,例如 我们建立了10个CNN模型,然后我们又写了一个预测类Predict,这个类会从已经保存好的模型restore恢复相应的图结...

python线程中的同步问题及解决方法

多线程开发可能遇到的问题 假设两个线程t1和t2都要对num=0进行增1运算,t1和t2都各对num修改1000000次,num的最终的结果应该为2000000。但是由于是多线程访问,有...

Python使用asyncio包处理并发详解

阻塞型I/O和GIL CPython 解释器本身就不是线程安全的,因此有全局解释器锁(GIL),一次只允许使用一个线程执行 Python 字节码。因此,一个 Python 进程通常不能同...

Python实现Windows和Linux之间互相传输文件(文件夹)的方法

Python实现Windows和Linux之间互相传输文件(文件夹)的方法

项目中需要从Windows系统传输ISO文件到Linux测试系统,然后再Linux测试系统里安装这个ISO文件。所以就需要实现如何把文件从Windows系统传输到Linux系统中。 在项...

Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签

Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签,具体代码如下所示: #!/usr/bin/env python # -*- codin...