Linux开机自启动方法

在使用 Linux 系统的过程中,默认有一个即时通讯软件开机自启动,想将该应用禁掉,不让其自启动。在 Linux 系统中,设置一个应用自启动的地方很多,遍布整个 Linux 启动流程。因此,首先了解 Linux 启动流程,再说明设置或禁用应用自启动的方法。

Linux 开机启动流程

Linux 开机启动流程如下:

  • 第一阶段:硬件引导启动阶段
1
2
3
4
5
6
7
8
9
1.1 POST(Power On Self Test) 加电自检
1.2 BIOS
1.2.1 初始化硬件
1.2.2 查找启动介质
HDD: 查找启动硬盘的第一个扇区(MBR/BootSector)
1.3 MBR
1.3.1 Bootloader(启动装载程序)
GRUB
分区表
  • 第二阶段:BootLoader 启动引导阶段
1
2
3
4
5
6
7
8
2.1 Stage1
执行 BootLoader 主程序(位于 MBR 前 446个字节),它的作用是启动 Stage1.5 或 Stage2
2.2 Stage1.5
Stage1.5 是桥梁,由于 Stage2 较大,存放在文件系统中,需要 Stage1.5 引导位于文件系统中的 Stage2
2.3 Stage2
Stage2 是 GRUB 的核心映像
2.4 grub.conf
Stage2 解析 grub.conf 配置文件,加载内核到内存中
  • 第三阶段:内核引导阶段
1
2
3
4
5
6
7
8
3.1 /boot/kernel and Kernel parameter 
内核初始化,加载基本的硬件驱动

3.2 /boot/initrd
引导 initrd 解压载入
3.2.1 阶段一:在内存中释放供 kernel 使用的 root filesystem
执行 initrd 文件系统中的 init,完成加载其他驱动模块
3.2.2 阶段二:执行真正的根文件系统中的 /sbin/init 进程
  • 第四阶段:Sys V init 初始化阶段
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
4.1 /sbin/init
4.1.1 /etc/inittab
init 进程读取 /etc/inittab 文件,确定系统启动的运行级别
4.1.2 /etc/rc.d/rc.sysinit
执行系统初始化脚本,对系统进行基本的配置
4.1.3 /etc/rc.d/rcN.d
根据先前确定的运行级别启动对应运行级别中的服务
4.1.4 /etc/rc.d/rc.local
执行用户自定义的开机启动程序
4.2 登录
4.2.1 /sbin/mingetty (命令行登录)
验证通过 执行 /etc/login
加载 /etc/profile ~/.bash_profile ~/.bash_login ~/.profile
取得 non-login Shell

4.2.2 /etc/X11/prefdm (图形界面登录)
gdm kdm xdm
Xinit
加载 ~/.xinitrc ~/.xserverrc
  • 第五阶段:启动完成

设置应用自启动方法

从 Linux 开机流程可知,设置应用自启动主要在 Linux 启动流程的第四阶段。如果是服务或其他非 GUI 应用,可在 4.1 阶段设置开机自启动。如果是 GUI 应用,应在 4.2 阶段设置开机自启动。

参考链接

  1. Linux 系统启动流程,by jaminzhang.
  2. Linux开机启动流程(超详细版),by Code_xw.
  3. initrd,by wikipedia.
  4. linux启动流程——initrd和initramfs,by 网络安全研发随想.
  5. [INFO] BOOT PROCESS: ANDROID vs. LINUX,by mirfatif.