我尝试使用以下内容执行某个过程:
system(“zsh&”);
我觉得它不起作用,因为这个过程没有显示出来。为什么不起作用?怎么改变?
答案 0 :(得分:2)
无论在后台运行任何&符号,或者系统()将执行什么操作,您都会启动交互式shell。当您启动交互式shell时,它会查找要连接的控制台,如果失败,它会查找要处理的stdin行。如果失败了,就会退出。这就是发生的事情。
答案 1 :(得分:1)
以下代码完美运行,使用htop我可以看到我的应用程序终止后睡眠仍在运行。我不知道你的代码应该有什么不同。
#include <stdio.h>
int main()
{
return system("sleep 100 &");
}
答案 2 :(得分:1)
这是因为zsh和所有shell都绑定了stdin,它不能在后台运行,所以它崩溃了。这也是为什么睡在后台工作的原因。