gpt4 book ai didi

linux - 在 posix_spawn() 创建的过程中调用 setsid()

转载 作者:IT王子 更新时间:2023-10-29 00:33:27 25 4
gpt4 key购买 nike

此问题是 this question 的后续问题.

posix_spawn() 发出 bash 命令时,我收到消息:

bash: no job control in this shell

我认为是因为在 fork 序列中调用了函数 setsid() 而我不知道如何在使用 posix_spawn() 时模拟此操作.

有没有办法为 bash 进程创建新 session ?

最佳答案

你不能。它不是当前 posix_spawn 接口(interface)的一部分。添加它已在 http://austingroupbugs.net/view.php?id=1044 中讨论过并且显然至少有一个实现 (QNX) 提供了 POSIX_SPAWN_SETSID 作为扩展,但要保持标准兼容,您需要使用 fork

如果父进程很小,使用 fork 应该不是问题,所以我想为了两全其美,您可以使用 posix_spawn 启动forks 并调用 setsid 的小型辅助二进制文件。IMO,使用 setsid 应该很少见,因为双重执行的小额外成本可以忽略不计。

关于linux - 在 posix_spawn() 创建的过程中调用 setsid(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38942589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com