python--signal

Posted on 2018-09-26 13:52  eilinge  阅读(195)  评论(0编辑  收藏  举报

Signal:信号(signal)-- 进程之间通讯的方式,是一种软件中断。一个进程一旦接收到信号就会打断原来的程序执行流程来处理信号。

signal:
    发送和接收异步系统信号
    信号是一个操作系统特性,它提供了一个途径可以通知程序发生了一个事件并异步处理这个事件。
    信号可以由系统本身生成,也可以从一个进程发送到另一个进程。

接收信号:

signal.signal(sig,action)
 sig为某个信号,action为该信号的处理函数。
signal.alarm()    
    它被用于在一定时间之后,向进程自身发送SIGALRM信号
signal.pause()    
    来让该进程暂停以等待信号, 以等待信号。

代码的应用:

import signal
import os
import time

def receive_signal(signum, stack):
    print ('Received:', signum)

# 注册信号处理程序
signal.signal(signal.SIGUSR1, receive_signal)
signal.signal(signal.SIGUSR2, receive_signal)

# 打印这个进程的PID方便使用kill传递信号

print ('My PID is:', os.getpid())

# 等待信号,有信号发生时则调用信号处理程序
while True:
    print ('Waiting...')
    time.sleep(3)