gpt4 book ai didi

python - 模拟 Ctrl-C 到 python 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 07:45:26 24 4
gpt4 key购买 nike

我有一个 python 脚本,它等待一些作业并在线程中执行它们(使用 subprocess.Popenshell=True)。当我在 shell 中运行脚本并尝试使用 Ctrl-C 终止它时,它会正常且干净地关闭。

问题是我想将此脚本作为守护进程运行,然后使用某种 unix 信号终止它。 INT 信号应与 Ctrl-C 相同,但工作方式不同。它让 subproces.popen 的子进程继续运行。

我还尝试在收到信号时在主线程中引发 KeyboardInterupt,但这也无法关闭脚本并终止所有子进程。

有什么关于如何模拟 Ctrl-C 的建议吗?

调用 subprocess.popen 的示例:

shell_cmd = "bwa aln -t 8 file1.fasta file1.fastq.gz > file1.sam.sai"
process = subprocess.Popen(shell_cmd,
shell=True,
stderr=subprocess.PIPE)

最佳答案

在主进程中引发 KeyboardInterrupt 在主进程中引发 KeyboardInterrupt。您必须将信号发送到子流程。

你试过了吗Popen.send_signal

或者,更直接地说,Popen.terminate

关于python - 模拟 Ctrl-C 到 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9417163/

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