systemd
需求: 运行环境为CentOS 7系统,我们开发了一个程序,需要在开机时启动它,当程序进程crash或者开机之后,守护进程立即拉起进程。 解决方案: 使用CentOS 7中的init进程systemd systemd简介 Linux Init & CentOS systemd Linux一直以来采用init进程。例如下面的命令用来启动服务: $ sudo /etc/init.d/apache2 start 或者\ $ service apache2 start 但是init有两个缺点: 1、启动时间长。Init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。(这也是CentOS5的主要特征) 2、启动脚本复杂。Init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这使得脚本变得很长而且复杂。 Init: Centos 5 Sys init 是启动速度最慢的,串行启动过程,无论进程相互之间有无依赖关系。 Centos6 Upstart init 相对启动速度快一点有所改进。有依赖的进程之间依次启动而其他与之没有依赖关系的则并行同步启动。 Centos7 systemd 与以上都不同。所有进程无论有无依赖关系则都是并行启动(当然很多时候进程没有真正启动而是只有一个信号或者说是标记而已,在真正利用的时候才会真正启动。) systemd为了解决上文的问题而诞生