linux环境编程-守护进程的实现

前面其实我们已经介绍过守护进程是什么东西啦,今天我们在啰嗦几句

一.概念

Daemon(精灵)进程,是Linux中的后台服务进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。一般采用以d结尾的名字。
Linux后台的一些系统服务进程,没有控制终端,不能直接和用户交互。不受用户登录、注销的影响,一直在运行着,他们都是守护进程。如:预读入缓输出机制的实现; ftp 服务器; nfs 服务器等。
创建守护进程,最关键的一步是调用setsid函数创建一个新的 Session【因为独立于终端】,并成为Session Leader.
 

二.创建守护进程模型【最好能背下来】

  • 1.创建子进程父进程退出====>所有工作在子进程中进行形式上的脱离控制终端。
  • 2.在子进程中创建新的会话====>setsid()函数,使子进程完全独立出来,脱离控制终端。
  • 3.改变当前工作目录====>chdir()函数,防止占用可卸载的文件系统。【一般是改成根目录】
  • 4.重新设置文件权限====>umask()函数,防止继承的文件创建屏蔽字拒绝某些权限。
  • 5.关闭没有必要的文件描述符====>继承打开的文件描述符不会

猜你喜欢

转载自blog.csdn.net/qq_44065088/article/details/109141683