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秒后收到了信号
上一篇:PS如何一秒移动人物?
下一篇:投影仪怎么开