linux系统开机自启动:init upstart systemd

作为一名优秀的工程师或者架构师,我们必须对linux系统有非常良好的理解和掌握。这里介绍下令很多人糊涂的linux自启动。

目前linux有3种初始化系统,按出现的时间依次为init ,upstart和systemd。

3种系统简介

1. init

init即sysvinit,它是system v的成果,被推广到其他unix系统。常见的init 命令和/etc/init.d即属于它。

init的优点来自服务串行启动,可以保证脚本执行顺序,也方便调试和排错。但也因为串行启动导致系统启动时间很长,在linux被应用到移动端后这个缺点成了大问题。此外init需要编写复杂的启动脚本,你可以在init.d里找个文件看看

2. upstart

upstart通过并行启动加快执行速度,但对于相互依赖的服务采用并发启动。它也支持硬件热插拔时的动态启动和卸载。

3.Systemd

systemd的并发更激进,因为对于相互依赖的服务它也同时启动。而且它的按需启动比upstart更优秀。

upstart取代了曾经辉煌的init,而systemd将要取代upstart

两个核心问题

实际上我们最关心的两个问题是如何判断某个linux系统采用了哪种初始化系统,以及如何判断某个服务是由哪个系统初始化或者应该选择由哪个系统初始化

1. 判断初始化系统

初始化进程是kernel启动的第一个进程,其pid始终为1,因此我们使用stat /proc/1/exe可以查看

或者根据/usr/lib/systemd /usr/share/upstart /etc/init.d这3个目录是否存在来判断

注意由于systemd和upstart都向后兼容,因此一个系统中可能安装了多个初始化系统

2.判断某个服务器由哪个系统初始化

其实init会将启动服务转交给upstart,而upstart转交给systemd

转载于:https://www.cnblogs.com/guigukuangji/p/7098714.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值