您好,登錄后才能下訂單哦!
博文結(jié)構(gòu)
啟動(dòng)5個(gè)階段
Linux關(guān)機(jī)
什么是daemon與服務(wù)(service)
通過(guò)systemctl管理服務(wù)
Systemctl針對(duì)service類(lèi)型的配置文件
一.啟動(dòng)5個(gè)階段:
內(nèi)核的引導(dǎo)。
運(yùn)行 init。
系統(tǒng)初始化。
建立終端 。
用戶登錄系統(tǒng)。
1.開(kāi)機(jī)自檢
服務(wù)器主機(jī)開(kāi)機(jī)之后,將根據(jù)主板BIOS中的設(shè)置對(duì)CPU、內(nèi)存、顯卡、鍵盤(pán)等設(shè)備進(jìn)行初步檢測(cè),檢測(cè)成功后根據(jù)預(yù)設(shè)的啟動(dòng)順序移交系統(tǒng)控制權(quán),大多時(shí)候會(huì)移交本機(jī)硬盤(pán);
2.MBR引導(dǎo)
當(dāng)從本機(jī)硬盤(pán)中啟動(dòng)系統(tǒng)時(shí),首先根據(jù)硬盤(pán)第一個(gè)扇區(qū)中MBR(主引導(dǎo)記錄)的設(shè)置,將系統(tǒng)控制權(quán)傳遞給包含操作系統(tǒng)引導(dǎo)文件的分區(qū);或者直接根據(jù)MBR記錄中的引導(dǎo)信息調(diào)用啟動(dòng)菜單(如GRUB);
3.GRUB菜單
對(duì)于Linux操作系統(tǒng)來(lái)說(shuō),GRUB(統(tǒng)一啟動(dòng)加載器)是使用最為廣泛的多系統(tǒng)引導(dǎo)器程序。系統(tǒng)控制權(quán)傳遞給GRUB后,將會(huì)顯示啟動(dòng)菜單給用戶選擇,并根據(jù)所選項(xiàng)(或采用默認(rèn)值)加載Linux內(nèi)核文件,然后將系統(tǒng)控制權(quán)轉(zhuǎn)交給內(nèi)核。需要注意的是,Centos 7 采用的是GRUB2啟動(dòng)引導(dǎo)器。
4.加載Linux內(nèi)核
Linux內(nèi)個(gè)是一個(gè)預(yù)先編譯好的特殊二進(jìn)制文件,介于各種硬件資源與系統(tǒng)程序之間,負(fù)責(zé)資源分配與調(diào)度。內(nèi)核接過(guò)系統(tǒng)控制權(quán)以后,將會(huì)完全掌握整個(gè)Linux操作系統(tǒng)的運(yùn)行過(guò)程。在Centos 系統(tǒng)中,默認(rèn)的內(nèi)核文件是“/boot/vmlinuz-3.10.0-514.el7.x86_64”。
5.init進(jìn)程初始化
為了進(jìn)一步的系統(tǒng)引導(dǎo)過(guò)程,Linux內(nèi)核首先將系統(tǒng)中的“/sbin/init”程序加載到內(nèi)存中運(yùn)行,init進(jìn)程負(fù)責(zé)完成一系列的系統(tǒng)初始化過(guò)程,最后等待用戶進(jìn)行登錄。
二.init程序的類(lèi)型:
SysV:?init, CentOS 5之前, 配置文件: /etc/inittab。
Upstart:?init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。
Systemd:?systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。
三.運(yùn)行級(jí)別
Linux系統(tǒng)有7個(gè)運(yùn)行級(jí)別(runlevel):
運(yùn)行級(jí)別0:系統(tǒng)停機(jī)狀態(tài),系統(tǒng)默認(rèn)運(yùn)行級(jí)別不能設(shè)為0,否則不能正常啟動(dòng)
運(yùn)行級(jí)別1:?jiǎn)斡脩艄ぷ鳡顟B(tài),root權(quán)限,用于系統(tǒng)維護(hù),禁止遠(yuǎn)程登陸
運(yùn)行級(jí)別2:多用戶狀態(tài)(沒(méi)有NFS)
運(yùn)行級(jí)別3:完全的多用戶狀態(tài)(有NFS),登陸后進(jìn)入控制臺(tái)命令行模式
運(yùn)行級(jí)別4:系統(tǒng)未使用,保留
運(yùn)行級(jí)別5:X11控制臺(tái),登陸后進(jìn)入圖形GUI模式
運(yùn)行級(jí)別6:系統(tǒng)正常關(guān)閉并重啟,默認(rèn)運(yùn)行級(jí)別不能設(shè)為6,否則不能正常啟動(dòng)
在inittab中的以下6行就是定義了6個(gè)終端:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
用戶登錄系統(tǒng)
一般來(lái)說(shuō),用戶的登錄方式有三種:
(1)命令行登錄
(2)ssh登錄
(3)圖形界面登錄
四.圖形模式與文字模式的切換方式
Linux預(yù)設(shè)提供了六個(gè)命令窗口終端機(jī)讓我們來(lái)登錄。
默認(rèn)我們登錄的就是第一個(gè)窗口,也就是tty1,這個(gè)六個(gè)窗口分別為tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 來(lái)切換它們。
sync 將數(shù)據(jù)由內(nèi)存同步到硬盤(pán)中
shutdown 關(guān)機(jī)指令
shutdown –h now 立馬關(guān)機(jī)
shutdown –h 20:25 系統(tǒng)會(huì)在今天20:25關(guān)機(jī)
shutdown –h +10 是分鐘后關(guān)機(jī)
shutdown –r now 系統(tǒng)立馬重啟
shutdown –r +10 系統(tǒng)十分鐘后重啟
reboot 重啟 == shutdown –r now
halt 關(guān)閉系統(tǒng)
正確的關(guān)機(jī)流程為:sync > shutdown > reboot > halt
不管是重啟系統(tǒng)還是關(guān)閉系統(tǒng),首先要運(yùn)行?sync?命令,把內(nèi)存中的數(shù)據(jù)寫(xiě)到磁盤(pán)中。
關(guān)機(jī)的命令有?shutdown –h now poweroff?和?init 0?
重啟系統(tǒng)的命令有?shutdown –r now reboot init 6
服務(wù)的啟動(dòng)、關(guān)閉與觀察等方式:
啟動(dòng):/etc/init.d/daemon start
關(guān)閉:/etc/init.d/daemon stop
重新啟動(dòng):/etc/init.d/daemon restart
狀態(tài)觀察:/etc/init.d/daemon status
服務(wù)啟動(dòng)的分類(lèi):
服務(wù)的相依性問(wèn)題:
執(zhí)行等級(jí)的分類(lèi):
制定執(zhí)行等級(jí)默認(rèn)要啟動(dòng)的服務(wù):
默認(rèn)要啟動(dòng): chkconfig daemon on
默認(rèn)不啟動(dòng): chkconfig daemon off
觀察默認(rèn)為啟動(dòng)否: chkconfig --list daemon
執(zhí)行等級(jí)的切換行為: init3 ?init 5(純切換到圖形界面)
五.什么是daemon與服務(wù)(service)
(1)systemd好處如下:
平行處理所有服務(wù),加速開(kāi)機(jī)流程:
一經(jīng)要求就回應(yīng)的 on-demand 啟動(dòng)方式(systemctl)
服務(wù)相依性的自我檢查:
依 daemon 功能分類(lèi):unit(服務(wù)單位)
將多個(gè) daemons 集合成為一個(gè)群組:
向下相容舊有的 init 服務(wù)腳本:
(2)systemd 的配置文件放置目錄
/usr/lib/systemd/system/:每個(gè)服務(wù)最主要的啟動(dòng)腳本設(shè)置,有點(diǎn)類(lèi)似以前的 /etc/init.d 下面的文件;
/run/systemd/system/:系統(tǒng)執(zhí)行過(guò)程中所產(chǎn)生的服務(wù)腳本,這些腳本的優(yōu)先序要比 /usr/lib/systemd/system/ 高!
/etc/systemd/system/:管理員依據(jù)主機(jī)系統(tǒng)的需求所創(chuàng)建的執(zhí)行腳本,其實(shí)這個(gè)目錄有點(diǎn)像以前 /etc/rc.d/rc5.d/Sxx 之類(lèi)的功 能!執(zhí)行優(yōu)先序又比 /run/systemd/system/ 高
(3)daemon與服務(wù)(service)
(4)通過(guò)systemctl管理服務(wù)
1、active (running):正有一只或多只程序正在系統(tǒng)中執(zhí)行的意思,舉例來(lái)說(shuō),正在執(zhí)行中的 vsftpd 就是這種模式。
2、active (exited):僅執(zhí)行一次就正常結(jié)束的服務(wù),目前并沒(méi)有任何程序在系統(tǒng)中執(zhí)行。 舉例來(lái)說(shuō),開(kāi)機(jī)或者是掛載時(shí)才會(huì)進(jìn) 行一次的 quotaon 功能,就是這種模式! quotaon 不須一直執(zhí)行~只須執(zhí)行一次之后,就交給文件系統(tǒng)去自行處理啰!通常用 bash shell 寫(xiě)的小型服務(wù),大多是屬于這種類(lèi)型 (無(wú)須常駐內(nèi)存)。
3、active (waiting):正在執(zhí)行當(dāng)中,不過(guò)還再等待其他的事件才能繼續(xù)處理。
4、inactive:這個(gè)服務(wù)目前沒(méi)有運(yùn)行的意思。 既然 daemon 目前的狀態(tài)就有這么多種了,那么 daemon 的默認(rèn)狀態(tài)有沒(méi)有可能除了
5、enabled:這個(gè) daemon 將在開(kāi)機(jī)時(shí)被執(zhí)行
6、disabled:這個(gè) daemon 在開(kāi)機(jī)時(shí)不會(huì)被執(zhí)行
7、static:這個(gè) daemon 不可以自己?jiǎn)?dòng) (enable 不可),不過(guò)可能會(huì)被其他的 enabled 的服務(wù)來(lái)喚醒 (相依屬性的服務(wù))
8、mask:這個(gè) daemon 無(wú)論如何都無(wú)法被啟動(dòng)!因?yàn)橐呀?jīng)被強(qiáng)制注銷(xiāo) (非刪除)。可通過(guò) systemctl unmask 方式改回原本狀態(tài)
舉例說(shuō)明
強(qiáng)迫服務(wù)注銷(xiāo) (mask)
root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl mask firewalld \\就是把啟動(dòng)的腳本清除
[root@localhost ~]# systemctl status firewalld
● firewalld.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead) since 六 2019-11-23 23:05:22 CST; 17s ago
Main PID: 752 (code=exited, status=0/SUCCESS)
11月 23 23:03:40 localhost.localdomain systemd[1]: Starting firewalld - dynamic fi....
11月 23 23:03:43 localhost.localdomain systemd[1]: Started firewalld - dynamic fir....
11月 23 23:05:22 localhost.localdomain systemd[1]: Stopping firewalld.service...
11月 23 23:05:22 localhost.localdomain systemd[1]: Stopped firewalld.service.
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]#
[root@localhost ~]# systemctl unmask firewalld \\解除mask
[root@localhost ~]# systemctl status firewalld
六.CentOS 7.1 的默認(rèn)情況下,就有 26 個(gè) target unit
主要有下面幾個(gè)
graphical.target:就是文字加上圖形界面,這個(gè)項(xiàng)目已經(jīng)包含了下面的 multi-user.target 項(xiàng)目!
multi-user.target:純文本模式!
rescue.target:在無(wú)法使用 root 登陸的情況下,systemd 在開(kāi)機(jī)時(shí)會(huì)多加一個(gè)額外的暫時(shí)系統(tǒng),與你原本的系統(tǒng)無(wú)關(guān)。這時(shí)你可以取得 root 的權(quán)限來(lái)維護(hù)你的系統(tǒng)。 但是這是額外系統(tǒng),因此可能需要?jiǎng)拥?chroot 的方式來(lái)取得你原有的系統(tǒng)
emergency.target:緊急處理系統(tǒng)的錯(cuò)誤,還是需要使用 root 登陸的情況,在無(wú)法使用 rescue.target 時(shí),可以嘗試使用這種模 式!
5.shutdown.target:就是關(guān)機(jī)的流程。
6.getty.target:可以設(shè)置你需要幾個(gè) tty 之類(lèi)的,如果想要降低 tty 的項(xiàng)目,可以修改這個(gè)東西的配置文件!
正常的模式是 multi-user.target 以及 graphical.target 兩個(gè),救援方面的模式主要是 rescue.target 以及更嚴(yán)重的 emergency.target。 如果要修改可提供登陸的 tty 數(shù)量,則修改 getty.target 項(xiàng)目。基本上,我們最常使用的當(dāng)然就是 multi-user 以及 graphical
[root@localhost ~]# systemctl poweroff \\系統(tǒng)關(guān)機(jī)
[root@localhost ~]# systemctl reboot \\重新開(kāi)機(jī)
[root@localhost ~]# systemctl suspend \\進(jìn)入暫停模式
[root@localhost ~]# systemctl hibernate \\進(jìn)入休眠模式
[root@localhost ~]# systemctl rescue \\強(qiáng)制進(jìn)入救援模式
[root@localhost ~]# systemctl emergency \\強(qiáng)制進(jìn)入緊急救援模式
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。