多语言展示
当前在线:457今日阅读:168今日分享:49

Python信号模块signal的简单使用

Python信号模块signal的简单使用,signal模块主要用在Unix系统的多进程程序中,由于内核原因Windows支持不好,本经验基于Ubuntu系统,做个简单案例来讲解下。
工具/原料
1

Ubuntu虚拟机

2

Python3

方法/步骤
1

打开Ubuntu虚拟机,打开终端,在终端输入命令kill -l查看所有信号,如下图所示。

2

使用vi创建文件‘testsignal.py’,命令如下 vi testsignal.py

3

在testsignal.py中,写代码如下:import signalimport timedef Handler(signum, frame):    print('kill message')  signal.signal(signal.SIGTSTP, Handler)time.sleep(4)print ('game over')先导入信号signal包,再定义一个处理函数Handler,在注册一下处理函数对应的信号,这里对应终端停止符。

4

在终端运行代码,在代码运行时按电脑CTRL+Z,中止程序,结果如下图python3 testsignal.py成功打印出kill message,说明信号被收到并处理。

5

第3步代码中的 time.sleep(4),也可以换成signal.pause()让该进程暂停以等待信号。

6

还可以定时发送信号,修改testsignal.py代码如下:import signaldef Handler(signum, frame):    print('Now, it's the time')    exit() signal.signal(signal.SIGALRM, Handler)signal.alarm(5)while True:    passsignal.alarm(5)决定在几秒后发送signal.SIGALRM信号

7

在终端运行代码,5秒后收到了信号

推荐信息