如何从 python 脚本运行命令并委托给它信号,例如Ctrl+C
?
我的意思是当我跑步时,例如:
from subprocess import call
call(["child_proc"])
I want child_proc
处理Ctrl+C
我猜你的问题是你希望子进程接收 Ctrl-C 并且不让父 Python 进程终止?如果您的子进程为 Ctrl-C (SIGINT) 初始化了自己的信号处理程序,那么这可能会起作用:
import signal, subprocess
old_action = signal.signal(signal.SIGINT, signal.SIG_IGN)
subprocess.call(['less', '/etc/passwd'])
signal.signal(signal.SIGINT, old_action) # restore original signal handler
现在你可以按 Ctrl-C (它会生成 SIGINT),Python 会忽略它,但是less
仍然会看到它。
However仅当子级正确设置其信号处理程序时,这才有效(否则这些信号处理程序是从父级继承的)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)