gpt4 book ai didi

python - 在 Linux 中工作时在 Python 中模拟 Ctrl-C 键盘中断

转载 作者:IT王子 更新时间:2023-10-29 00:11:01 28 4
gpt4 key购买 nike

我正在研究一些脚本(在我工作的公司),这些脚本被加载/卸载到管理程序中,以便在事件发生时触发一段代码。实际卸载脚本的唯一方法是按 Ctrl-C。我正在用 Python 编写一个函数来自动执行该过程

一旦它在程序输出中看到字符串 "done",它就应该终止 vprobe。我正在使用 subprocess.Popen 来执行命令:

lineList = buff.readlines()
cmd = "vprobe /vprobe/myhello.emt"
p = subprocess.Popen(args = cmd, shell=True,stdout = buff, universal_newlines = True,preexec_fn=os.setsid)
while not re.search("done",lineList[-1]):
print "waiting"
os.kill(p.pid,signal.CTRL_C_EVENT)

如您所见,我将输出写入以读+写模式打开的 buff 文件描述符。我检查最后一行;如果它有 'done',我会杀死它。遗憾的是,CTRL_C_EVENT 仅对 Windows 有效。我可以为 Linux 做什么?

最佳答案

我认为您可以发送 Linux 等价物 signal.SIGINT(中断信号)。

(编辑:我以前在这里有一些东西不鼓励使用这种策略来控制子进程,但在更仔细的阅读中,听起来你已经决定在这种特定情况下需要 control-C ......所以,SIGINT应该这样做。)

关于python - 在 Linux 中工作时在 Python 中模拟 Ctrl-C 键盘中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13024532/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com