gpt4 book ai didi

c - init 收割孤儿进程后,shell 等待输入

转载 作者:太空宇宙 更新时间:2023-11-04 07:24:56 25 4
gpt4 key购买 nike

以下程序调用 fork() 并打算生成一个孤立进程。它工作正常,孤儿进程被进程 init 回收(通过命令 ps 检查)。但为什么 bash 似乎在等待输入?

    ...    
if ((pid = fork() < 0) {
err_sys("fork error"); /* err_sys is declared in apue.h */
} else if (pid == 0) {
/* sleep to ensure that parent process terminates first */
printf("child process: %d\n", getpid());
sleep(2);
exit(0);
}
printf("parent process\n");
exit(0);
}

执行程序

$ ./a.out
parent process
$ child process: 4787
_ <= shell stops here until I hit Ctrl-C
(the underscore is just for demostration)

注意:我使用的是 Ubuntu 11.10。

最佳答案

当 shell 显示提示时,它不再像平常那样等待。问题(如果你可以这样调用它的话)是子进程打印一些输出后跟一个换行符。此换行符已打印,但 shell 不会打印新提示。就这样。只需像往常一样编写命令即可。

关于c - init 收割孤儿进程后,shell 等待输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19115336/

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