信号触发过程重装机
pyexec的Python项目详细描述
pyexec允许设置信号处理程序,它将重新加载当前进程。这个 可以使用功能重新启动应用程序,例如当代码 通过向python进程发送适当的信号进行更改。
示例用法:
importosimportpyexecimportsignalimportsysdefhandler():sys.stderr.write('Reloading process!\n')returnsys.argv+['reloaded']sys.stderr.write('[%d]: argv: %r\n'%(os.getpid(),sys.argv))pyexec.install(signal.SIGUSR1,handler)signal.pause()
两次发送usr1信号后python进程的输出:
$ python example.py [20785]: argv: ['example.py'] Reloading process! [20785]: argv: ['example.py', 'reloaded'] Reloading process! [20785]: argv: ['example.py', 'reloaded', 'reloaded']