您的位置:首页 > 其它

程序启动交由init进程接管

2018-07-11 09:47 253 查看
#include <unistd.h>
#include <stdio.h>
int main ()
{
int pid = fork();
if(pid < 0) {
printf("create process error. ret=-1"); //ret=0
return -1;
}
if(pid > 0)  //父进程中,pid是子进程到进程号
{
int status = 0;
if(waitpid(pid, &status, 0) == -1) //这里阻塞一直等待
{
printf("wait child process error! ret=-1"); //ret=0
}
printf("grandpa process exit.\n");
exit(0);
}

pid = fork();
if(pid < 0) {
printf("create process error. ret=0");
return -1;
}

if(pid > 0)//新到父进程退出,最开始到父进程也随即退出
{
printf("father process exit. ret=0");
exit(0);
}

//以后的子进程交给init进程接管
while(1)
{
sleep(1);
printf("son(deamon) process running.\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: