linux系统中后台程序的编写方法

首先,守护程序是一个始终在运行的服务器端程序,也称为守护进程。



本文介绍了在linux下编写守护程序的步骤,并给出了一个示例程序。



二、守护进程简介



守护进程是一个长期的运行过程中,通常运行在系统启动和结束时,系统是封闭的。一般来说,后台程序在后台运行,因为它不控制终端不能与前台的用户交互。后台程序一般是作为一个服务程序,等待客户端程序与它交流。我们也叫守护程序在后台运行。



三,守护程序编程规则



编写守护程序以避免不必要的麻烦有一些基本规则。



1。首先,在程序运行之后,调用叉并撤回父进程。子进程获得一个新进程、ID,但继承父进程的进程组ID。



2、使用setsid函数创建自己的新一届领导人和新进程组的一个新会话,使这一过程没有控制终端(TTY)。



3、改变当前工作目录的根目录,以免影响加载的文件系统,或可改变某些特定的目录。



4,设置一个文件来创建掩码是0,避免了权限对创建文件的影响。



5、不需要打开的文件描述符是关闭的,因为在后台守护程序,不需要关闭终端互动,通常stdin,stdout和stderr。另根据实际情况处理。



另一个问题是,守护程序无法与终端不能使用printf输出方法的信息。我们可以使用syslog机制来实现信息的输出,方便了程序的调试。在使用日志,我们需要先启动syslogd程序。仅供参考,请参阅手册页或相关文件关于syslogd程序的使用。我们不在这里讨论。



国际init_daemon(void)



{



pid_t PID;



int i;



如果((PID =叉())< 0)



返回- 1;



否则(PID)!= 0)



退出(0);来自父进程



Setsid ();



为(i = 0;i < nofile;+ +我)



封闭(i);



Umask(0);



返回0;



}