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

在Linux上打开新的进程组

我正在使用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的脚本语言?

如何将输出从grep输出到cp?

粘贴在unix中执行命令

JavaFX – CSS无法在Linux中加载

如何将我的调度程序添加到Linux内核

“tail -f”替代它不滚动terminal窗口

bash在等待前台子进程完成时不处理信号。 这就是为什么发送SIGINT不会做任何事情。 这个行为与进程组无关。

有几个选项可让您的子进程收到您的SIGINT :

当用Shell=True产生一个新的进程时,尝试在命令行的前面添加exec ,这样bash就会被你的子进程替换。

当用Shell=True产生一个新进程时,用& wait %-追加命令行。 这将导致bash在等待您的子进程完成时对信号做出反应。 但它不会将信号转发给您的子进程。

使用Shell=False并指定您的子可执行文件的完整路径。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐