运行新的Cygwin Shell并在需要时将其杀死

问题描述

我创建了一个在cygwin上运行的应用程序,它将打开一些新的shell并在每个shell上运行python脚本。当我想控制新外壳并随意杀死它们时,问题就开始了。经过大量的挖掘之后,我决定使用以下命令:

subprocess.run('mintty.exe -t {} -h always -e {} &'.format(app_name,run_app_cmd),shell = True)

,以后我想杀死它时,请使用:

subprocess.run('kill -2 {}'.format(apps[app].shell_pid),shell = True)

它工作得很好,直到我意识到新终端有时卡住并且没有响应,我也不喜欢它。我进行了进一步的挖掘,发现我以为当前Mintty上的python执行命令并打开新终端,而实际上发生的是Windows主机打开了新Minty(新终端的PPID为1 ),然后信号可能会通过某些Windows问题等。 我希望每个脚本都在单独的终端中的原因是每个脚本都有很多输出,并且我希望它们在不同的窗口中。

现在,经过所有这些解释,有什么方法可以防止这种情况发生?我不希望这些卡住成为我生活的一部分...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)