bool Switcher::Daemon() {
base::YamlConfig config;
if (!config_.ReadConfig(config_file_)) {
fprintf(stderr, "read config file fail.\n");
return false;
}
bool is_daemon = config_.Get<bool>(kService, "is_daemon");
if (!is_daemon) {
return true;
}
if (fork() != ) {
exit();
}
setsid();
if (fork() != ) {
exit();
} close();
close();
close();
open("/dev/null", O_RDWR);
dup();
dup(); std::string stdout_log_path;
if(config_.Get<std::string>(kService, kStdoutLogPath, &stdout_log_path)) {
string filename = stdout_log_path + "." + DateString_();
int fd = open(filename.c_str(), O_WRONLY | O_APPEND | O_CREAT, );
if (fd != -) {
// 将STDOUT, STDERROR 重定向到文件
dup2(fd, STDOUT_FILENO);
dup2(fd, STDERR_FILENO);
close(fd);
}
} return true;
}

C++ 后台进程 daemon的更多相关文章

  1. Hadoop: Hadoop Cluster配置文件

    Hadoop配置文件 Hadoop的配置文件: 只读的默认配置文件:core-default.xml, hdfs-default.xml, yarn-default.xml 和 mapred-defa ...

  2. wifidog 配置中文说明

    #网关IDGatewayID default#外部网卡ExternalInterface eth0#无线网卡GatewayInterface eth0#无线IPGatewayAddress 192.1 ...

  3. 3proxy.cfg 配置文件解析

    最新配置文件的man文档所在位置: /程序目录/doc/html/man3/3proxy.cfg.3.html 官网: https://3proxy.ru/ Download 3proxy tiny ...

  4. ssh - OpenSSH SSH 客户端 (远程登录程序)

    总览 (SYNOPSIS) ssh [-l login_name ] hostname | user@hostname [command ] ssh -words [-afgknqstvxACNTX1 ...

  5. Linux 操作系统!开篇!!!

    此篇文章主要会带你介绍 Linux 操作系统,包括 Linux 本身.Linux 如何使用.以及系统调用和 Linux 是如何工作的. Linux 简介 UNIX 是一个交互式系统,用于同时处理多进程 ...

  6. 全方位剖析 Linux 操作系统,太全了!!!

    Linux 简介 UNIX 是一个交互式系统,用于同时处理多进程和多用户同时在线.为什么要说 UNIX,那是因为 Linux 是由 UNIX 发展而来的,UNIX 是由程序员设计,它的主要服务对象也是 ...

  7. 创建一个 mac 的后台进程(daemon)

    Mac中创建守护进程(Daemon) 创建一个可以执行的脚本 hello.sh touch /Users/oslivan/test/hello.sh chmod 755 /Users/oslivan/ ...

  8. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之缓存融合技术和主要后台进程(四)

    缓存融合技术和主要后台进程(四) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...

  9. [转]Linux后台进程管理利器:supervisor

    FROM : http://www.liaoxuefeng.com/article/0013738926914703df5e93589a14c19807f0e285194fe84000 Linux后台 ...

随机推荐

  1. 录制Android屏幕软件——屏幕录像专家

    本文不是技术文章,今天分享下录制屏幕的软件.这个软件的效果还是不错的,前提是需要Root.软件名字:屏幕录像专家 来源网址:http://www.mumayi.com/android-350180.h ...

  2. 用开源项目PhotoView实现图片的双指缩放和双击放大缩小

    项目地址:https://github.com/chrisbanes/PhotoView 用开源项目有个好处,一是实现简单,二是bug少.那么我们就来说下这个项目能够实现的效果: 1.单个图片的双指缩 ...

  3. Orchard之模版开发

    生成新模版之后(参看:Orchard之生成新模板),紧接着就是模版开发了. 一:开发必备之 Shape Tracing 到了这一步,非常依赖一个工具,当然,它也是 Orchard 项目本身的一个 Mo ...

  4. 在LaTeX中使用颜色 Using colours in LaTeX

    Using colours in LaTeX There are several elements in LATEX whose colour can be changed to improve th ...

  5. 数据库分库分表中间件:Mycat;分布式数据库;mysql的分布式事务

    官网:http://mycat.io/,里面有电子书籍可以下载:http://www.mycat.io/document/mycat-definitive-guide.pdf 旧版本下载地址:http ...

  6. 支付宝 iphone6 指纹验证失败

    重启 iphone6  就可以了. 再次打开 支付宝 那个 指纹功能,就有一个弹出框 可以按指纹了.

  7. Android Asynchronous Http Client-Android异步网络请求客户端接口

    1.简介 Android中网络请求一般使用Apache HTTP Client或者采用HttpURLConnect,但是直接使用这两个类库需要写大量的代码才能完成网络post和get请求,而使用and ...

  8. iOS 加密的3种方法

    //需要导入   #import <CommonCrypto/CommonCryptor.h> ==============MD5加密============ NSString *str ...

  9. Java系列: 如何在Eclipse中安装Memory Analyzer插件

    一.找到eclipse的插件安装对话框: help->install new software ->work with 二.输入Memory Analyzer的安装路径 具体可以到http ...

  10. 【架构】ServiceMesh初步了解

    ServiceMesh初步了解 servicemesh_百度搜索 初识Service Mesh - 原力注入微信公众账号 Service Mesh解读:新一代微服务技术新秀_EAII-企业架构创新研究 ...