如何制作进程守护进程
我试图了解如何使我的程序成为守护程序,因此遇到的一些事情通常是程序执行以下步骤来成为守护程序: 致电fork( )。 在家长中,致电exit( )。这样可确保原始父级(守护程序的祖父母)对它的子级终止,守护程序的父级不再运行以及该守护程序不是进程组负责人感到满意。最后一点是成功完成下一步的要求。 调用setsid( ),为守护程序提供一个新的进程组和会话,两者均将其作为领导者。这也可以确保该进程没有关联的控制终端(因为该进程只是创建了一个新会话,并且不会分配一个会话)。 通过将工作目录更改为根目录chdir( )。这样做是因为继承的工作目录可以在文件系统上的任何位置。守护程序通常会在系统正常运行的时间内运行,并且您不想保持某些随机目录打开,从而阻止管理员卸载包含该目录的文件系统。 关闭所有文件描述符。 打开文件描述符0、1和2(标准输入,标准输出和标准错误),然后将它们重定向到/dev/null。 #include <sys/types.h> #include <sys/stat.h> #include <stdlib.h> #include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <linux/fs.h> int main (void) { pid_t pid; int i; /* create new process */ pid = fork ( ); if (pid == -1) return -1; else …