验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

C++怎么采用Daemon进行后台程序的部署

阅读:195 来源:乙速云 作者:代码code

C++怎么采用Daemon进行后台程序的部署

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

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

      1. 创建子进程

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

      2. 终止父进程

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

      3. 创建新的会话

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

      4. 改变当前工作目录

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

      5. 重设文件权限掩码

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

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

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

      二. 代码示例

      #include
      #include
      #include
      #include
      #include
      #include
      using namespace std; //不推荐使用这种写法,但是这里我为了省事就直接这样写了
      int main(){
      pid_t pid = fork();
      if(pid < 0){
        cerr<<"Error : Fork Failed!"< 0){
        //Father 
        exit(0);
      }
      if(setsid() < 0){
        cerr <<"Error : Setsid Failed"<            
                          
    分享到:
    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
    相关文章
    {{ v.title }}
    {{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
    你可能感兴趣
    推荐阅读 更多>