守护进程

自古美人都是妖i 提交于 2019-11-28 07:28:40
#include <unistd.h>  
#include <stdio.h>#define RUNNING_DIR /tmp
int main(){
    pid_t pid;
    pid=fork();
    if(pid!=0)exit(0); // 如果创建失败或者为父进程则退出
    printf("Running...");    setsid();          // obtain a new process grop    for(int i=gettabsize();i>=0;i--){close(i);}    i=open("/dev/null",O_RDWR);    dup(i); dup(i);    umask(027);    chdir(RUNNING_DIR);        signal(SIGCHLD,SIG_IGN);
    signal(SIGTSTP,SIG_IGN);
    signal(SIGTTOU,SIG_IGN);
    signal(SIGTTIN,SIG_IGN);
    signal(SIGHUP,HelperDaemon::signalHandler);  // hangup
    signal(SIGTERM,HelperDaemon::signalHandler); // kill
    while(1); return 0; }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!