linux下创建后台守护进程实例
2013-01-25 15:23
357 查看
步骤:
1. 父进程通过fork函数创建一个子进程,然后父进程退出
2. 子进程中使用setsid函数创建一个新的会话
3. 切换进程的工作目录到根目录
4. 设置进程的umask为0
5. 关闭不需要的文件操作符
实例代码:
#include <stdio.h>
#incude <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/select.h>
#include <sys/time.h>
int main(int argc, char* argc)
{
pid_t pid, sid;
// 创建一个子进程
pid = fork();
if (pid < 0)
{
perror("fork");
exit(EXIT_FAILURE);
}
if (pid > 0)
{
//主进程退出
exit(EXIT_SUCCESS);
}
// 子进程中,创建一个新的会话
if ((sid = setsid()) < 0)
{
perror("setsid");
exit(EXIT_FAILURE);
}
// 重新设置文件权限模式
umask(0);
//关闭从主进程中继承来的不需要的输入输出描述符
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
// 实现守护进程需完成的工作
int i = 0;
//struct timeval
//{
// long tv_sec; //seconds
// long tv_usec; // microseconds
//};
struct timeval;
timeval.tv_sec = 1;
timeval.tv_usec = 0;
while(i < 10000)
{
printf("To do your work\n");
select(0, NULL, NULL, NULL, &timeval);
}
return 0;
}
1. 父进程通过fork函数创建一个子进程,然后父进程退出
2. 子进程中使用setsid函数创建一个新的会话
3. 切换进程的工作目录到根目录
4. 设置进程的umask为0
5. 关闭不需要的文件操作符
实例代码:
#include <stdio.h>
#incude <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/select.h>
#include <sys/time.h>
int main(int argc, char* argc)
{
pid_t pid, sid;
// 创建一个子进程
pid = fork();
if (pid < 0)
{
perror("fork");
exit(EXIT_FAILURE);
}
if (pid > 0)
{
//主进程退出
exit(EXIT_SUCCESS);
}
// 子进程中,创建一个新的会话
if ((sid = setsid()) < 0)
{
perror("setsid");
exit(EXIT_FAILURE);
}
// 重新设置文件权限模式
umask(0);
//关闭从主进程中继承来的不需要的输入输出描述符
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
// 实现守护进程需完成的工作
int i = 0;
//struct timeval
//{
// long tv_sec; //seconds
// long tv_usec; // microseconds
//};
struct timeval;
timeval.tv_sec = 1;
timeval.tv_usec = 0;
while(i < 10000)
{
printf("To do your work\n");
select(0, NULL, NULL, NULL, &timeval);
}
return 0;
}
相关文章推荐
- Linux下后台守护进程的编写实例
- Linux下后台守护进程的编写实例
- 《王保明老师----Linux开发学习笔记》------讲12:守护进程 -----如何分析和理解下面这个创建守护进程的实例
- linux创建守护进程且进程中只有唯一实例
- linux创建守护进程
- linux下创建守护进程(daemon process)
- linux 如何创建守护进程
- linux 一个简单守护进程实例
- Linux 后台进程与守护进程
- linux下如何创建守护进程
- node.js应用后台守护进程管理器Forever安装和使用实例
- linux下让solr以守护进程方式运行(让solr运行在后台)
- linux 创建守护进程的相关知识
- linux中的前台任务、后台任务和守护进程
- linux下创建守护进程01
- linux创建守护进程
- Linux 创建伪守护进程
- Linux 普通进程 后台进程 守护进程(转)
- Linux 普通进程 后台进程 守护进程