区别
-
Centos6以前用的都是init来启动服务;
Centos7开始默认使用了systemd管理服务; -
init串行启动所有服务;
systemd并行启动所有服务,充分利用多内核架构。 -
init启动的服务分两类:独立启动模式(stand alone)和超级守护进程(super daemon);
systemd将所有服务定义为不同类型的服务单位(unit),类型有:service、socket、target、path、snapshot、timer等 -
init下管理程序使用纯脚本
/etc/init.d/daemon
可自定义参数;
systemd使用systemctl命令来管理,不可自定义参数,有语法限制 -
init没法自动启动当前服务所依赖的其他服务,必须手动处理
systemd可以检查并启动当前所启动的服务所依赖的其他服务。 -
init的7个运行级别,systemd中只有1、3、5有相对应的target类型。
注意
- 不是通过systemctl启动的服务则没法通过systemd来管理(比如我的supervisor、daphne、uwsgi等都是手动启动的,我的nginx就是靠systemctl启动的,实际上还是都靠systemctl启动比较好管理,至少一开机就可以全部自动启动)。
- systemd启动时没法与用户交互。