微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决运行新的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 举报,一经查实,本站将立刻删除。