首页 > 系统服务 > 详细

进程控制之孤儿进程

时间:2019-04-04 17:37:19      阅读:160      评论:0      收藏:0      [点我收藏+]
#include<stdio.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<signal.h>


int main( void )
{
? ? daemon_init();

? ? fprintf(stderr, "main进程[%d]\n", getpid() );
? ? while( 1 )
? ? {
? ? }

? ? exit(0);
}


int daemon_init()
{
? ? pid_t pid;

? ? if( getppid() == 1 )
? ? {

? ? ? ? umask( 0 );

? ? ? ? return 0;
? ? }


? ? if( (pid = fork()) < 0 )
? ? {
? ? ? ? fprintf(stderr, "fork err!\n");
? ? ? ? return -1;
? ? }
? ? else if( pid > 0 )
? ? {
? ? ? ? fprintf( stderr, "结束进程[%d]\n", getpid() );
? ? ? ? exit( 0 );
? ? }

? ? fprintf( stderr, "孤儿进程[%d]\n", getpid() );
? ? signal( SIGHUP, SIG_IGN );
? ? signal( SIGQUIT, SIG_IGN );
? ? signal( SIGCHLD, SIG_IGN );

? ? setsid();
? ? umask( 0 );

? ? return 0;

}

进程控制之孤儿进程

原文:https://www.cnblogs.com/xfgnongmin/p/10656088.html

(0)
(0)
   
举报
评论 一句话评论(0
分享档案
最新文章
教程昨日排行
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!