守护进程
什么是守护进程
独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件
特性:
- 后台运行
- 与运行前的环境隔离
- 可从启动脚本/etc/rc.d启动,可从作业规划进程crond启动,也可由用户终端启动
/etc/rc.d目录作用
/etc/rc$.d 目录 通过它们所启动的守护进程具有超级用户的权限。系统的一些基本服务通常都是通过这种方式启动的。
从图中我们可以看到这个目录下的文件都是软链接到了init目录下,也就是说,他们是在系统启动进行初始化时启动的. 回到主题,仔细想一下的话就会发现这样做就可以保证第一点和第二点的条件 后台和运行前环境隔离.
作业规划进程crond
crond 是linux执行定时任务的一个Daemon,所以启动时便会自动运行,一直检查是否有要运行的进程 .有的话就去调度执行.
守护进程和普通进程区别
其实,我们大多数和操作系统的交互都是通过终端的,我们通过终端启动的进程,当我们关闭终端时,不管这个进程在前台或者后台运行.这个进程最终都会被kill掉,因为始终这个进程都是依附在终端上的.
而对于Daemon来说,它突破了这种局限, 在终端关闭时他也会继续运行.
举个例子:
如图,当我们用bash 启动spyder时,点击关闭bash,不管当前运行在前台和后台都会kill掉spyder. 第二图,没法演示,我这里关闭bash后自动kill掉了spyder