Linux守护进程的创建(结合nginx框架)
Linux守护进程的创建(结合nginx框架)
先介绍几个相关函数:
int dup2(arg1,arg2)
:参数一指向的内容赋给参数二,shi的参数二也能访问参数一所指向的内容,并返回新的描述符
int fork()
创建子进程,返回值-1:创建失败 返回值0:子进程 返回其他:父进程
setsid()
调用成功后,返回新的会话的ID,调用setsid函数的进程成为新的会话的领头进程,并与其父进程的会话组和进程组脱离
unmask()
:umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限,咱们现在不用管,设置成0就可以了
代码:
#include <fcntl.h>
#include <iostream>
#include <signal.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
using std::cout;
using std::endl;
int ngx_doemon
{int fd;switch (fork()){case -1:return -1;case 0:break;default:exit(0);}if (setsid() == -1){return -1;}umask(0);fd = open("dev/null", O_RDWR);if (fd == -1){return -1;}if (dup2(fd, STDIN_FILENO) == -1){return -1;}if (dup2(df, STDOUT_FILENO)){return -1;}if (fd > STDERR_FILENO){if (close(fd) == -1)return -1;}return 1;
}
int main(int argc, char const *argv[])
{if (ngx_doemon != 1){//创建守护进程失败,可以做失败后的处理return -1;}else{//创建守护进程成功,执行守护进程中要做的工作for (;;){sleep(1);}}return 0;
}
Linux守护进程的创建(结合nginx框架)相关推荐
- linux守护进程的创建
下面的完成了这样一个功能,创建一个守护进程,每个一秒在/tmp目录下的文件peng.txt中记录当前系统时间. 一.守护进程 守护进程是linux中的后台服务进程,在系统启动时开始运行,在系统关闭时终 ...
- linux下daemon守护进程的实现(以nginx代码为例)
ngx_int_t ngx_daemon(ngx_log_t *log) {int fd;// 让init进程成为新产生进程的父进程:// 调用fork函数创建子进程后,使父进程立即退出.这样,产生的 ...
- Linux系统编程之--守护进程的创建和详解【转】
本文转载自:http://www.cnblogs.com/mickole/p/3188321.html 一,守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程.它独立于控制终 ...
- Linux 守护进程创建原理及简易方法
1:什么是Linux下的守护进程 Linux daemon是运行于后台常驻内存的一种特殊进程,周期性的执行或者等待trigger执行某个任务,与用户交互断开,独立于控制终端.一个守护进程的父进程是in ...
- 浅析Linux守护进程、守护进程的创建步骤
文章目录 何为守护进程 进程组 / 组长进程 / 会话 / 会话首进程 进程组 会话 程序示例 守护进程的创建步骤 创建守护进程程序示例 何为守护进程 守护进程(daemon)是一类在后台运行的特殊进 ...
- linux下守护进程的创建和sighup信号
先来说下我理解的守护进程:守护进程没有控制终端,我觉得可以把它理解为一个后台进程. 本篇文章假设读者知道什么是进程组与会话. 下面看一下unix环境高级编程中守护进程的创建流程: 1.首先在进程中调用 ...
- .NET跨平台实践:用C#开发Linux守护进程
Linux守护进程(Daemon)是Linux的后台服务进程,它脱离了与控制终端的关联,直接由Linux init进程管理其生命周期,即使你关闭了控制台,daemon也能在后台正常工作. 一句话,为L ...
- Linux守护进程实现
Linux守护进程 redis版: void daemonize(void) {int fd;if (fork() != 0) exit(0); /* parent exits */setsid(); ...
- Linux 守护进程,编写(转载)
设置守护进程过程: 1.创建子进程,父进程退出 2.在子进程中创建新会话 3.改变当前目录为根目录 4.重设文件权限掩码 5.关闭文件描述符 *6.守护进程里,忽略SIGCHLD信号 (即使fork两 ...
最新文章
- leetcode-125-验证回文串
- python僵尸进程和孤儿进程_python学习笔记——孤儿进程和僵尸进程
- 报错:不是可以识别的内置函数名称
- MySQL 基础———— UNION 联合查询
- CSS入门学习(转)
- 15个最受欢迎的Python开源框架
- Uim的情人节礼物·其之弐(洛谷-P2524)
- 电机的入门之路系列5--二相四线,四相五线,四相六线电机的区分方法
- 高德地图时间和实际差多少_带着“高德地图”去工作
- python cookbook 学习笔记 -- 1.5 去除字符串两端空格
- Jenkins发布PHP项目之一自动化部署
- windows 10
- {基于Applet的J2ME模拟器}和{microemulator}[J2ME推荐]
- android 内存清理命令,安卓手机内存怎么清理 安卓手机内存清理方法【图文】
- 日本作家将编程语言变成了动漫人物,你猜C语言是萝莉还是御姐?不得不说脑洞实在太大了!
- 在 LaTeX 中插入图片
- 【CSDN编程竞赛第六期】python详解
- 软件测试之第一章 软件测试和测试环境
- 邮箱密码忘记了怎么办?邮箱密码找回技巧
- 用python写注册登录界面web_用Python实现web端用户登录和注册功能
热门文章
- linux python源码目录结构,TensorFlow0.8源码阅读 -- 代码目录结构讲解
- sqoop动态分区导入mysql,使用sqoop import从mysql往hive含分区表中导入数据的一些注意事项...
- 服务器自动运行python_在虚拟主机中安装了python程序,如何使它在服务器上自动运行?...
- c语言程序设计学生程序查询,《c语言程序设计报告-学生信息管理系统》.doc
- c实现三角形角度大于一个值_初中数学三角形知识点小结
- 【机器视觉学习笔记】OpenCV C++ 与 HSV颜色模型
- MAC OS X 10.9.X下用命令行开启SSD trim的方法汇总
- 【Linux】FTP文件下载
- Fedora 15 快捷操作之新体验
- React开发(177):opentab没有menu会报错