0x00 背景需求
由于北邮校内网需要Drcom拨号,每次用curl命令很麻烦,所以开始了这次写开机启动脚本的过程。
0x01 linux启动过程
init 进程读取 /etc/inittab文件中的信息,并进入预设的运行级别。
# The default runlevel.
id:2:initdefault:
Debian中的运行级别
0 – 停机(千万不要把initdefault设置为0 )
1 – 单用户模式(单用户模式,只允许root用户对系统进行维护。)
2 – 多用户,但是没有NFS
3 – 完全多用户模式(字符界面)
4 – 基本不用
5 – X11(图形界面)
6 – 重新启动(千万不要把initdefault设置为6 )
查看系统当前运行级别使用runlevel命令,通常情况下 /etc/rcS.d/目录下的启动脚本首先被执行,然后是/etc/rcN.d/目录,N为/etc/inittab中的initdefault。
/etc/rc2.d中的部分文件如下:
pi@raspberrypi:/etc/rc2.d $ ll
total 12
drwxr-xr-x 2 root root 4096 Sep 25 17:56 .
drwxr-xr-x 111 root root 4096 Sep 25 18:26 ..
lrwxrwxrwx 1 root root 17 May 7 07:03 K01lightdm -> ../init.d/lightdm
lrwxrwxrwx 1 root root 20 May 7 06:38 K05nfs-common -> ../init.d/nf