返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++如何采用Daemon进行后台程序的部署
  • 819
分享到

C++如何采用Daemon进行后台程序的部署

C++后台程序的部署C++Daemon后台程序c++程序部署 2023-05-18 08:05:34 819人浏览 泡泡鱼
摘要

目录一、如何采用Daemon进行后台程序的部署1. 创建子进程2. 终止父进程3. 创建新的会话4. 改变当前工作目录5. 重设文件权限掩码二. 代码示例一、如何采用Daemon进行

一、如何采用Daemon进行后台程序的部署

c++中,如果要让一个程序一直在后台运行并且和终端会话分离,我们可以将其作为守护进程运行,以下是创建C++守护进程的一般步骤。

1. 创建子进程

通过调用fork()函数创建一个子进程。这将产生一个新的进程,该进程是原始进程的副本。父进程和子进程从fork()函数的返回值处开始执行。对于子进程,fork()返回0,对于父进程,fork()返回子进程的进程id

2. 终止父进程

在父进程中,使用exit()函数使得其正常退出。这样做是为了让子进程成为孤儿进程进而被init进程(进程ID为1)接管,并且脱离原来的会话。

3. 创建新的会话

在子进程中,调用setsid()函数创建一个新的会话,这将使得子进程成为新会话的领导进程,并且摆脱原来的控制终端。

4. 改变当前工作目录

使用chdir()函数来创建一个新的会话,这将使得子进程成为新会话的领导进程,同时摆脱原来的控制终端。

5. 重设文件权限掩码

通过调用unmask()函数设置一个合适的文件权限,确保守护进程创建的文件具有合适的权限。

6.关闭不需要的文件描述

守护进程通常不需要和用户交互,因此你可以关闭不需要的文件描述符,如标准输入,标准输入和错误文件描述符

二. 代码示例

#include<iOStream>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<cstdlib>
using namespace std; //不推荐使用这种写法,但是这里我为了省事就直接这样写了
int main(){
pid_t pid = fork();
if(pid < 0){
  cerr<<"Error : Fork Failed!"<<endl;
  exit(1);
}
if(pid > 0){
  //Father 
  exit(0);
}
if(setsid() < 0){
  cerr <<"Error : Setsid Failed"<<endl;
  exit(1);
}
unmask(0);
chdir("/");
//close unnecessary file description
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
while(true){
  //daemon logic;
  sleep(5);
  }
return 0;
}

到此这篇关于C++采用Daemon进行后台程序的部署的文章就介绍到这了,更多相关C++后台程序的部署内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++如何采用Daemon进行后台程序的部署

本文链接: https://lsjlt.com/news/211852.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++如何采用Daemon进行后台程序的部署
    目录一、如何采用Daemon进行后台程序的部署1. 创建子进程2. 终止父进程3. 创建新的会话4. 改变当前工作目录5. 重设文件权限掩码二. 代码示例一、如何采用Daemon进行...
    99+
    2023-05-18
    C++后台程序的部署 C++ Daemon后台程序 c++程序部署
  • PHP小程序后台部署运行 LNMP+WNMP的方法
    目录一、简介:二、环境1.Win2.Linux + 微擎+小程序运行调试审核发布流程 宝塔安装相关软件一、简介: 1.微信小程序后台,通常为PHP,或者JAVA版本,以下简单说下使用...
    99+
    2024-04-02
  • 如何进行.NET桌面程序WINFORM或WPF的部署
    这篇文章将为大家详细讲解有关如何进行.NET桌面程序WINFORM或WPF的部署,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。目前的WIN7操作系统自带了.NET3.5,用户基数比较大,后面...
    99+
    2023-06-03
  • Vue+Koa2如何打包后进行线上部署
    这篇文章给大家分享的是有关Vue+Koa2如何打包后进行线上部署的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.将Vue和Koa2结合很多人在打完包后就不知道怎么做了,毕竟后面...
    99+
    2024-04-02
  • 微信小程序如何与后台PHP进行交互
    这篇文章将为大家详细讲解有关微信小程序如何与后台PHP进行交互,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:接下来将讲后台如何与前台进行数据及图片之间的交互,相...
    99+
    2024-04-02
  • 如何进行跨平台C++程序性能优化?
    在进行跨平台 c++++ 程序性能优化时,可以采取以下策略:使用特定平台的编译器标记;优化数据结构和算法;利用并行化技术。 如何在进行跨平台 C++ 程序性能优化 在开发跨平台 C++...
    99+
    2024-05-08
    跨平台 c++优化 linux c++
  • 如何利用C++平台进行移动应用程序开发?
    使用 c++++ 开发移动应用程序需要跨平台框架,如 qt creator、juce 或 react native c++。具体可按以下步骤使用 qt creator 创建移动应用程序:...
    99+
    2024-05-11
    c++ 移动应用程序开发 移动应用程序 模拟器
  • 如何部署和维护C++ Web应用程序?
    部署和维护 c++++ web 应用程序涉及以下步骤:部署:构建应用程序、部署可执行文件或容器、配置环境。维护:监控应用程序、应用更新、备份和恢复、安全维护。 如何部署和维护 C++ ...
    99+
    2024-05-11
    c++ web应用程序 docker 数据丢失
  • tomcat如何部署及运行Java程序
    Tomcat可以按照以下步骤来部署和运行Java程序: 下载Tomcat:在Tomcat官方网站上下载适合你的操作系统的Tomc...
    99+
    2023-10-27
    tomcat Java
  • Linux后台运行程序如何实现
    在Linux中,可以使用以下几种方式实现后台运行程序:1. 使用&符号:可以在命令的末尾添加&符号,例如:`./program &`...
    99+
    2023-08-17
    Linux
  • PHP应用程序如何在Linux容器中进行部署和管理?
    随着云计算的发展,容器技术越来越受到关注,越来越多的企业开始将应用程序部署在容器中,以提高应用程序的可移植性、可扩展性和可靠性。而PHP是一种流行的Web开发语言,很多Web应用程序都是使用PHP编写的。本文将介绍如何在Linux容器中部...
    99+
    2023-07-25
    linux linux 容器
  • CentOS如何运行与控制后台进程
    本篇内容介绍了“CentOS如何运行与控制后台进程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们经常会碰到这样的问题,用ssh登录了远程...
    99+
    2023-06-10
  • Linux中如何让进程在后台运行
    本篇内容介绍了“Linux中如何让进程在后台运行”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Linux中,如果要让进程在后台运行,一般情...
    99+
    2023-06-10
  • Linux系统上如何利用Git进行快速部署Spring应用程序?
    在软件开发过程中,部署是一个非常重要的环节。使用Git来进行部署可以极大地提高部署效率和减少出错率。本文将介绍如何在Linux系统上利用Git进行快速部署Spring应用程序。 准备工作 在开始之前,需要先确保系统上已经安装了Git和...
    99+
    2023-11-01
    linux git spring
  • go程序如何部署到linux上运行
    这篇文章将为大家详细讲解有关go程序如何部署到linux上运行,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。go 语言版本:go1.9.2开发环境:win10部署环境:ubuntu 14.04.6一、wi...
    99+
    2023-06-15
  • 如何后台运行bat定时器程序
    这篇文章主要为大家展示了“如何后台运行bat定时器程序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何后台运行bat定时器程序”这篇文章吧。新建一个BAT处理文件,命名为timer.bat ,...
    99+
    2023-06-08
  • 小程序如何实现采集录音并上传到后台
    这篇文章主要介绍小程序如何实现采集录音并上传到后台,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下demo.wxml<view>  <butto...
    99+
    2024-04-02
  • xxljob后台集群部署如何避免重复执行任务
    场景 工作中有一场景,后台部署2个节点,同时注册到执行器内,如何避免任务重复执行呢? 其实xxl-job本身已经考虑到这一点,我们只需要在创建任务的时候这样做就可以了: 路由策略:选择 一致性HASH...
    99+
    2023-09-09
    java 前端 服务器
  • 高效管理 Linux 进程:如何后台执行程序、查看进程、终止任务
    目录 前言一、nohup命令详解1-1、nohup命令介绍1-2、语法格式1-2-1、基础语法介绍1-2-2、执行脚本文件1-2-3、执行python文件1-2-4、拓展延申:在服务器上运行后...
    99+
    2023-09-11
    linux unix 服务器
  • Linux C 后台服务程序单进程控制的实现
    介绍 通常后台服务器程序都必须有且只有一个进程,那么如何单进程呢? 本例子是通过flock函数对/var/run/myserver.pid记录pid文件的进行加锁 若加锁不正常,说明后台服务进程已经在运行了,这时...
    99+
    2022-06-04
    Linux C 后台单进程控制 linux 后台进程控制
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作