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

时间: 2024-11-09 22:44:24

linux系统开机自启动:init upstart systemd的相关文章

linux添加开机自启动脚本示例详解

来源: linux添加开机自启动脚本示例详解 linux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的; 一.在/etc/rc.local中添加如果不想将脚本粘来粘去,或创建链接什么的,则:step1. 先修改好脚本,使其所有模块都能在任意目录启动时正常执行;step2. 再在/etc/rc.local的末尾添加一行以绝对路径启动脚本的行;如:$ vim /etc/rc.local#!/bin/sh## This script will be executed *after*

Linux系统开机启动时的工作原理

Linux系统开机启动时的工作原理也是深入了解Linux系统核心工作原理的一个很好的途径. 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘信息.内存信息.时钟信息.PnP特性等等.在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了.在BIOS将系统的控制权交给硬盘第一个扇区之后,就开始由Linux来控制系统了. 启动第二步--读取MB

linux tomcat开机自启动

方法一: linux 下tomcat开机自启动修改Tomcat/bin/startup.sh 为:export JAVA_HOME=/usr/java/j2sdk1.4.2_08export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.export PATH=$PATH:$JAVA_HOME/binexport CATALINA_HOME=/usr/local/tomcat/usr/local/tomc

linux系统开机启动过程

Linux系统开机过程 1:BIOS 通电自检 2:读取MBR 3:boot loader 4:加载内核 5:用户层init根据inittab文件来设定运行等级 6:init进程执行rc.sysinit 7:启动内核模块 8:执行不同运行级别的脚本程序 9:执行/etc/rc/d/rc.local 10:执行/bin/login 程序,进入登录状态.

Linux系统开机流程

Linux系统开机的经过可以汇整成底下的流程的:     1. 加载 BIOS 的硬件信息不迚行自我测试,幵依据讴定取得第一个可开机的装置:     2. 读取幵执行第一个开机装置内 MBR 的 boot Loader (亦即是 grub, spfdisk 等程序):     3. 依据 boot loader 的讴定加载 Kernel ,Kernel 会开始侦测硬件不加载驱劢程序:     4. 在硬件驱劢成功后,Kernel 会主劢呼叨 init 程序,而 init 会取得 run-leve

Linux系统开机启动原理

我理解的linux系统开机顺序如下,如有分歧,可一起探讨. Linux系统开机启动的顺序是: BIOS自检,检查硬件,选择引导介质如光盘or硬盘orU盘等等. 进入bootloader,它是写在硬盘最前面的部分,大小是512字节.由446字节的mbr和64字节的DPT和2字节的返回码组成. bootloader会去读取/boot/grub/grub.conf,然后根据配置文件寻找/boot分区下面的内核文件vmlinuz.....及内核辅助文件initrd......以及加载根分区 读取/etc

Linux系统开机和启动过程

提起操作系统这个词,想必大家并不陌生,有电脑端操作系统和手机端操作系统.电脑端操作系统较为熟悉的就是微软开发的windows操作系统,还有一种就是大家稍微陌生的linux操作系统,而手机端的操作系统分别为iOS操作系统,Android操作系统.而今天小编就给大家着重讲讲Linux系统开机和启动过程. 内核引导 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动. 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件. 运行init init 进程

Windows、Linux系统开机密码破解

在生活中有时候粗心大意忘了电脑密码进不了系统怎么办?重装系统又太麻烦,下面介绍常用密   码恢复方法. 一.Windows系统开机密码恢复 如果电脑装的是Windows系统,又忘了密码,想要进去系统其实很简单. 1.使用启动盘自带的Windows密码管理器清除密码或者重置密码 用启动盘启动电脑后在启动选择界面选择清除系统开机密码或者重置系统开机密码. 2.删除或替换密码文件 Windows系统开机密码文件存放在C/windows/system32/config/SAM文件中,只要删除该文件,重

linux awk命令批量关闭系统开机自启动服务

安装好一个新的系统之后,为了简化系统需要关闭一些开机自启动的服务. 蜗牛使用了grep和awk的基础命令进行操作. 作为服务器使用,新系统中需要启动的服务大概就以下几个 crond network sshd rsyslog 查看运行级别3开机自启动的服务 chkconfig --list|grep 3:on 步骤1:对服务名字进行采集 通过grep滤出3:on的服务,然后排除crond network sshd rsyslog 这四个选项,然后实用awk输出第一列内容 chkconfig --l