對於這個知識點,本身之前一直不瞭解,今天特地總結下,做爲本身的一個學習記錄mysql
一. init是Linux系統操做中不可缺乏的程序之一。sql
所謂的init進程,它是一個由內核啓動的用戶級進程。
安全
內核自行啓動(已經被載入內存,開始運行,並已初始化全部的設備驅動程序和數據結構等)以後,就經過啓動一個用戶級程序init的方式,完成引導進程。數據結構
因此,init始終是第一個進程(其進程編號始終爲1)。
app
內核會在過去曾使用過init的幾個地方查找它,它的正確位置(對Linux系統來講)是/sbin/init。ssh
若是內核找不到init,它就會試着運行/bin/sh,若是運行失敗,系統的啓動也會失敗。
ide
二. init一共分爲7個級別,這7個級別的所表明的含義以下post
0:停機或者關機(千萬不能將initdefault設置爲0)學習
1:單用戶模式,只root用戶進行維護spa
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 S00killallK10cups K16ksm K35smb K66gpsd K75netfs K84NetworkManager K85rpcidmapd K88rsyslog K92ip6tables S01haltK10saslauthd K20nfs K36mysqld K69rpcsvcgssd K75udev-post K84wpa_supplicant K86nfslock K89iscsid K92iptablesK10xfs K25sshd K50haldaemon K70vboxdrv K76open*** K85mdmonitor K87alsasound K89netplugd K98qemuK15gpm K30sendmail K50netconsole K74acpid K83bluetooth K85messagebus K87rpcbind K89rdisc K99lvm2-monitor
開機會執行的兩個進程是killall和halt,這兩個都表示爲終止進程。
故init 0是用於表示關機的。
init 1,對應的系統會運行,/etc/rc.d/rc1.d裏指定的程序。
[root@localhost ~] # ls /etc/rc.d/rc1.dK01dnsmasq K15ksmtuned K35nmb K60crond K74lm_sensors K84NetworkManager K85rpcidmapd K88rsyslog K92ip6tables S99singleK10cups K16ksm K35smb K66gpsd K75netfs K84wpa_supplicant K86nfslock K89iscsid K92iptablesK10saslauthd K20nfs K36mysqld K69rpcsvcgssd K76open*** K85mdmonitor K87alsasound K89netplugd K98qemuK10xfs K25sshd K50haldaemon K70vboxdrv K83bluetooth K85messagebus K87rpcbind K89rdisc S02lvm2-monitorK15gpm K30sendmail K50netconsole K74acpid K83portreserve K85rpcgssd K88iscsi K90network S26udev-post
這個級別啓動的服務有三個,udev、lvm相關的和single(單用戶模式的服務)。
故此級別是單用戶模式,只有root能用,不支持其餘用戶。
init 2,對應的系統會運行,/etc/rc.d/rc2.d裏指定的程序。
[root@localhost ~ ]# ls /etc/rc.d/rc2.d/K01dnsmasq K20nfs K36mysqld K74lm_sensors K85rpcgssd K89netplugd S08iptables S23NetworkManager S30vboxdrv S99localK10saslauthd K25sshd K50haldaemon K75netfs K85rpcidmapd K89rdisc S12rsyslog S24portreserve S35qemuK10xfs K30sendmail K50netconsole K76open*** K86nfslock K90network S13rpcbind S25cups S85gpmK15ksmtuned K35nmb K66gpsd K83bluetooth K88iscsi S02lvm2-monitor S15mdmonitor S26acpid S90crondK16ksm K35smb K69rpcsvcgssd K84wpa_supplicant K89iscsid S08ip6tables S22messagebus S26udev-post S99alsasound
這個級別啓動的服務多了,NetworkManager/iptables/acpid/alsa都已經開啓,可是nfs,smb,open*** 相關服務沒有開啓,這個級別不支持nfs。
init 3 , 對應的系統運行/etc/rc.d/rc3.d
[root@localhost ~] # ls /etc/rc.d/rc3.d/K01dnsmasq K30sendmail K74lm_sensors K89rdisc S08iptables S18rpcidmapd S25cups S35qemu S85ksmtuned S99localK10saslauthd K36mysqld K76open*** K90network S12rsyslog S19rpcgssd S25netfs S50bluetooth S90crondK10xfs K50netconsole K84wpa_supplicant K99lvm2-monitor S13iscsi S22messagebus S26acpid S50haldaemon S91nmbK20nfs K66gpsd K85mdmonitor S07iscsid S13rpcbind S23NetworkManager S26udev-post S84ksm S91smbK25sshd K69rpcsvcgssd K89netplugd S08ip6tables S14nfslock S24portreserve S30vboxdrv S85gpm S99alsasound
這個級別nfs服務是開啓的,被成爲徹底多用戶模式。
init 4
[root@localhost ~ ]# ls /etc/rc.d/rc4.d/K01dnsmasq K30sendmail K66gpsd K85mdmonitor S07iscsid S13rpcbind S23NetworkManager S26udev-post S84ksm S99localK10saslauthd K35nmb K69rpcsvcgssd K89netplugd S08ip6tables S14nfslock S24portreserve S30vboxdrv S85gpmK10xfs K35smb K74lm_sensors K89rdisc S08iptables S18rpcidmapd S25cups S35qemu S85ksmtunedK20nfs K36mysqld K76open*** K90network S12rsyslog S19rpcgssd S25netfs S50bluetooth S90crondK25sshd K50netconsole K84wpa_supplicant K99lvm2-monitor S13iscsi S22messagebus S26acpid S50haldaemon S99alsasound
此模式被稱爲安全模式。
init 5
[root@localhost ~ ]# ls /etc/rc.d/rc5.d/K01dnsmasq K25sshd K66gpsd K84wpa_supplicant K87rpcbind K90network S22messagebus S26udev-post S84ksm S99localK10saslauthd K30sendmail K69rpcsvcgssd K85mdmonitor K88iscsi K99lvm2-monitor S23NetworkManager S30vboxdrv S85ksmtunedK10xfs K36mysqld K74lm_sensors K85rpcgssd K89iscsid S08ip6tables S25cups S35qemu S91nmbK15gpm K50netconsole K76open*** K85rpcidmapd K89netplugd S08iptables S25netfs S50bluetooth S91smbK20nfs K60crond K83portreserve K86nfslock K89rdisc S12rsyslog S26acpid S50haldaemon S99alsasound
徹底的圖形化界面模式
init 6
[root@localhost ~ ]# ls /etc/rc.d/rc6.d/K01dnsmasq K15ksmtuned K35nmb K60crond K74lm_sensors K83portreserve K85rpcgssd K88iscsi K90network S00killallK10cups K16ksm K35smb K66gpsd K75netfs K84NetworkManager K85rpcidmapd K88rsyslog K92ip6tables S01rebootK10saslauthd K20nfs K36mysqld K69rpcsvcgssd K75udev-post K84wpa_supplicant K86nfslock K89iscsid K92iptablesK10xfs K25sshd K50haldaemon K70vboxdrv K76open*** K85mdmonitor K87alsasound K89netplugd K98qemuK15gpm K30sendmail K50netconsole K74acpid K83bluetooth K85messagebus K87rpcbind K89rdisc K99lvm2-monitor
這個級別裏,只有兩個服務,一個爲killall,一個是reboot,即,關閉如今的系統,重啓。故此級別是重啓。
不一樣的系統版本,可能裏面的文件會不一樣,若是要查看,能夠經過ll來看,其實他們都是軟鏈接。