我正在使用Popen(Python 2.7,Shell = True)生成一些进程,然后向它们发送SIGINT。 看来进程组的领导者实际上是Python进程,所以把SIGINT发送到Popen(这是bash的PID)返回的PID没有任何作用。
那么,有没有办法让Popen创build一个新的stream程组? 我可以看到有一个名为subprocess.CREATE_NEW_PROCESS_GROUP的标志,但它只适用于Windows。
我实际上是升级了一些Python2.6下运行的旧脚本,Python2.6似乎默认的行为是我想要的(即当我做Popen时一个新的进程组)。
Chrome Linux – 打印
Tomcat创build的目录在服务器上有不同的所有者和组
有没有办法在Linux中运行一个应用程序作为屏幕保护程序
通过unix域套接字传递结构
任何人都知道任何静态types的脚本语言?
粘贴在unix中执行命令
JavaFX – CSS无法在Linux中加载
如何将我的调度程序添加到Linux内核
“tail -f”替代它不滚动terminal窗口
bash在等待前台子进程完成时不处理信号。 这就是为什么发送SIGINT不会做任何事情。 这个行为与进程组无关。
有几个选项可让您的子进程收到您的SIGINT :
当用Shell=True产生一个新的进程时,尝试在命令行的前面添加exec ,这样bash就会被你的子进程替换。
当用Shell=True产生一个新进程时,用& wait %-追加命令行。 这将导致bash在等待您的子进程完成时对信号做出反应。 但它不会将信号转发给您的子进程。
使用Shell=False并指定您的子可执行文件的完整路径。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。