[英]How to spawn process on linux by using new process group id in BASH
任何人都可以建议,如何在BASH unix shell中使用新进程组ID在linux上生成一个新进程? 非常感谢!
要在新进程组中从命令提示符运行命令,例如“emacs xxx.txt”,即以交互方式运行:
setsid emacs xxx.txt &
如链接的“linux命令setsid”中所述,setsid命令行为可能令人惊讶(在我刚才使用的linux中,联机帮助页根本没用)。 所以...
如果要从脚本中生成命令并在脚本退出后继续执行命令,请将setsid加倍:
setsid setsid emacs xxx.txt
......理由是:
当bash在脚本期间调用setsid时,setsid会保留bash解释器进程的进程组ID,因此:
setsid emacs xxx.txt
...块(参见链接文章)。 但它确实在运行emacs之前设置了一个新的进程组
你可以用'&'来背景:
setsid emacs xxx.txt&
...但是这会留下一个竞争条件,其中调用脚本可能会在后台进程到达setsid更改进程组(可能会终止子进程)之前退出
即当我们将setsid加倍时,序列是:
在脚本中 ,如果要与命令通信并等待它退出 ,请参阅bash联机帮助页中的subprocess。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.