一. init是Linux系统操作中不可缺少的程序之一
(点击题目解锁惊喜↓↓)
所谓的init进程,它是一个由内核启动的用户级进程。
内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。
所以,init始终是第一个进程(其进程编号始终为1)。
内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。
如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。
二. init7个级别的含义
- 0:停机或者关机(千万不能将initdefault设置为0)
- 1:单用户模式,只root用户进行维护
- 2:多用户模式,不能使用NFS(Net File System)
- 3:完全多用户模式(标准的运行级别)
- 4:安全模式
- 5:图形化(即图形界面)
- 6:重启(千万不要把initdefault设置为6)
其实,可以通过查看/etc/rc.d/中的rc*.d的文件来对比理解。
init 0,对应的系统会运行,/etc/rc.d/rc0.d里指定的程序。我们来看下名称:
[root@localhost ~]# ls /etc/rc.d/rc0.d
K01dnsmasq K15ksmtuned K35nmb K60crond K74lm_sensors K83portreserve K85rpcgssd K88iscsi K90network S00killall
K10cups K16ksm K35smb K66gpsd K75netfs K84NetworkManager K85rpcidmapd K88rsyslog K92ip6tables S01halt
K10saslauthd K20nfs K36mysqld K69rpcsvcgssd K75udev-post K84wpa_supplicant K86nfslock K89iscsid K92iptables
K10xfs K25sshd K50haldaemon K70vboxdrv K76openvpn K85mdmonitor K87alsasound K8