/*
下面这个程序是:编写后台进程的实例。
那么,我们应该怎样来理解这个程序的代码呢???
一下就是:我的分析
它为什么能把一个进程变为后台进程???
那么,我应该怎样查看后台进程即守护进程???
也就是说,后台服务程序是
我的问题:
1.守护进程和普通进程的区别是什么吗???
2.普通进程是用fork()函数创建的,守护进程是用什么创建的???
3.我们为什么需要守护进程????
在什么情况下,会用到守护进程???
4.
我们都知道创建一个守护进程的步骤如下:
1.().调用fork创建新进程,它会是将来的守护进程
2.在父进程中调用exit(),保证子进程不是进程组组长
3.调用setsid()创建新的会话期
4.把当前目录改为根目录
5.将标准输入、输出 标准错误,重定向到/dev/null
6.
对于上面的几个步骤,我有几个疑问:
1.为什么经过刚才几个步骤创建的进程是一个守护进程??
2.守护进程和普通进程的区别是什么???
3.如何把新创建的普通进程转变为守护进程???
4.如何把当前目录改为根目录??? chdir()函数的作用是什么??
*/
#include<sys/types.h>
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
#include<signal.h>
int main(void)
{
pid_t pid;
pid=fork();
if(pid==-1)
{
perror("fork err");
}
if(pid>0)
{
exit(0);
}//这个if语句的作用是什么??? 是用来杀死父进程吗???
pid=setsid(); //这一句话的含义是什么???
if(pid==-1)
{
perror("fork err");
exit(0);
}
printf("hello \n");
resturn 0;
}
下面这个程序是:编写后台进程的实例。
那么,我们应该怎样来理解这个程序的代码呢???
一下就是:我的分析
它为什么能把一个进程变为后台进程???
那么,我应该怎样查看后台进程即守护进程???
也就是说,后台服务程序是
我的问题:
1.守护进程和普通进程的区别是什么吗???
2.普通进程是用fork()函数创建的,守护进程是用什么创建的???
3.我们为什么需要守护进程????
在什么情况下,会用到守护进程???
4.
我们都知道创建一个守护进程的步骤如下:
1.().调用fork创建新进程,它会是将来的守护进程
2.在父进程中调用exit(),保证子进程不是进程组组长
3.调用setsid()创建新的会话期
4.把当前目录改为根目录
5.将标准输入、输出 标准错误,重定向到/dev/null
6.
对于上面的几个步骤,我有几个疑问:
1.为什么经过刚才几个步骤创建的进程是一个守护进程??
2.守护进程和普通进程的区别是什么???
3.如何把新创建的普通进程转变为守护进程???
4.如何把当前目录改为根目录??? chdir()函数的作用是什么??
*/
#include<sys/types.h>
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
#include<signal.h>
int main(void)
{
pid_t pid;
pid=fork();
if(pid==-1)
{
perror("fork err");
}
if(pid>0)
{
exit(0);
}//这个if语句的作用是什么??? 是用来杀死父进程吗???
pid=setsid(); //这一句话的含义是什么???
if(pid==-1)
{
perror("fork err");
exit(0);
}
printf("hello \n");
resturn 0;
}