Linux守护进程
来源:互联网 发布:百度云资源搜索cms 编辑:程序博客网 时间:2024/05/18 00:30
Linux下守护进程:
建立守护进程:
#include
#include
#include
#include
#include
#include
void daemonInit()
{
int pid;
int i;
if(pid = fork())
exit(0);//结束父进程
else if(pid < 0)
exit(1);
setsid();//是子进程成为一个新会话的组长和进程组长,并与控制台分离;
if(pid = fork())
exit(0);//建立第二个子进程,终止第一个子进程,因为第一个子进程成为进程组长后,
在运行时会再次申请打开一个控制终端,所以建立第二个子进程,终止第一个子进程,可以使第二个子进程
游离,因为第二个子进程不是会话组组长,所以不会申请打开控制终端;
else if(pid < 0)
exit(1);
for(i = 0;i
的文件描述符,如果不关闭会浪费系统资源,也不会导致进程所在的文件系统无法卸下;
{
close(i);
}
chdir("/");//因为进程运行的文件目录不能够被卸下,建立的这些进程默认在父进程所在的文件目
录中,所以最好将目录更改为根目录“/”,因为根目录不会被卸下;
umask(0);//进程从创建它的父进程那里继承了文件创建掩模,它可能修改守护进程所创建的文件存
取位,为了防止这一点,将文件创建掩模清除;
signal(SIGCHLD,SIG_IGN);//这个并不是必须的,但对于某些进程,父进程不等待子进程结束而结
束会产生僵尸进程,如果等待会增加父进程负担,可以处理SIGCHLD信号使内核在子进程结束时回收子进程资
源,使其不产生僵尸进程;
return;
}
int main()
{
daemonInit();
...//函数要执行的任务,比如五分钟往特定文件中写数据,这样就可以使用守护进程对这个任务进行守护,让任务每五分钟写一次文件;
}
Linux下守护进程:
建立守护进程:
#include
#include
#include
#include
#include
#include
void daemonInit()
{
int pid;
int i;
if(pid = fork())
exit(0);//结束父进程
else if(pid < 0)
exit(1);
setsid();//是子进程成为一个新会话的组长和进程组长,并与控制台分离;
if(pid = fork())
exit(0);//建立第二个子进程,终止第一个子进程,因为第一个子进程成为进程组长后,
在运行时会再次申请打开一个控制终端,所以建立第二个子进程,终止第一个子进程,可以使第二个子进程
游离,因为第二个子进程不是会话组组长,所以不会申请打开控制终端;
else if(pid < 0)
exit(1);
for(i = 0;i
的文件描述符,如果不关闭会浪费系统资源,也不会导致进程所在的文件系统无法卸下;
{
close(i);
}
chdir("/");//因为进程运行的文件目录不能够被卸下,建立的这些进程默认在父进程所在的文件目
录中,所以最好将目录更改为根目录“/”,因为根目录不会被卸下;
umask(0);//进程从创建它的父进程那里继承了文件创建掩模,它可能修改守护进程所创建的文件存
取位,为了防止这一点,将文件创建掩模清除;
signal(SIGCHLD,SIG_IGN);//这个并不是必须的,但对于某些进程,父进程不等待子进程结束而结
束会产生僵尸进程,如果等待会增加父进程负担,可以处理SIGCHLD信号使内核在子进程结束时回收子进程资
源,使其不产生僵尸进程;
return;
}
int main()
{
daemonInit();
...//函数要执行的任务,比如五分钟往特定文件中写数据,这样就可以使用守护进程对这个任务进行守护,让任务每五分钟写一次文件;
}
阅读全文
0 0
- LINUX守护进程介绍
- Linux守护进程简介
- linux 守护进程编写
- linux 守护进程 daemon
- Linux实现守护进程
- Linux 守护进程
- linux 守护进程
- LINUX守护进程
- Linux 守护进程
- linux 守护进程 daemon
- linux守护进程介绍
- linux守护进程介绍
- Linux守护进程
- Linux守护进程
- Linux守护进程介绍
- linux之守护进程
- Linux 守护进程
- LINUX 守护进程
- esoteric R | Introducing Closures
- 路由生产算法调研
- 在类模板中使用友元函数的问题
- 图片自适应
- java使用FileFilter筛选文件
- Linux守护进程
- http协议报头详解
- 悼念512汶川大地震遇难同胞——老人是真饿了
- win10系统还原失败错误0x80070091的解决方法
- 测试两周人的感悟
- 过程创建索引
- Past duration 0.666664 too large
- mongoTemplate聚合操作
- DNS协议详解及报文格式分析