守護進程的建立步驟

1,建立子進程,父進程退出(if(pid>0)exit(0))code

2,在子進程中建立新會話(setsid()便可)進程

3,改變當前目錄爲根目錄(chdir("/")便可)it

4,重設文件權限掩碼(umask(0)便可)io

5,關閉文件描述符class

代碼以下:(用完記得殺死否則這種程序多了你的機子會很卡 kill -9  進程號)循環

 用 ps axj |grep  a.out 可查看進程號權限

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
int main()
{
	pid_t pid;
	int fd;
	if((pid = fork()) == -1)
	{
		perror("fork");
		return 0;
	}
	if(pid > 0)
		exit(0);
	setsid();

	chdir("/");
	umask(0);
	for(fd=0;fd<1024;fd++)
		close(fd);
	while(1);//用死循環能夠方便查看到進程號
	return 0;
}
相關文章
相關標籤/搜索