【講清楚,說明白!】服務管理

目錄:
(一)瞭解服務的概念
(二)服務器狀態查看、啓動、關閉、重啓
(三)設置服務開機自動啓動
(四)服務是如何定義的
(五)運行級別:瞭解後綴爲target的服務vim


(一)瞭解服務的概念
(1.1)首先咱們看一下Windows系統中的服務,例如系統中的DHCP Client服務,其中「狀態」指的是當前的狀態,而當前狀態咱們能夠選擇「啓動、中止、暫停、恢復、從新啓動」;即便咱們設置當前的狀態爲「中止」,可是在系統從新啓動後仍然是會成爲「已開啓」的狀態,這是因爲在「啓動類型」處,咱們設置的是「自動」啓動類型,所以啓動類型不會影響當前系統的狀態,只會影響系統下次重啓系統時的狀態。
【講清楚,說明白!】服務管理bash


(二)服務器狀態查看、啓動、關閉、重啓
(2.1)而在Linux系統中,咱們可使用systemctl命令查詢系統中全部的服務信息(圖1-2),在Linux系統中相似於Windows系統中的服務都是之後綴爲service的服務(圖1-3)。
# systemctl list-unit-files---查詢系統中全部的服務
# systemctl list-unit-files --type service---查詢全部類型爲service的服務
【講清楚,說明白!】服務管理
【講清楚,說明白!】服務管理
(2.2)咱們首先查詢系統中是否有ftp、sshd服務,可使用list-unit-files參數肯定服務的具體名稱。而後能夠查詢sshd服務是不是正常運行的狀態,接着能夠對服務進行一系列中止、啓動、重啓的操做,可是當前的操做都只是對系統的當前狀態進行的,若是系統重啓後,當前的設置都會默認到系統原始的狀態。
# systemctl list-unit-files --type service |grep ftp---查詢系統中是否有ftp服務
# systemctl list-unit-files --type service | grep ssh---查詢系統中是否有ssh服務
# systemctl is-active sshd---查詢sshd服務是否正常運行
# systemctl stop sshd.service---關閉sshd服務運行
# systemctl start sshd---將sshd服務啓動起來
# systemctl restart sshd.service---將sshd服務重啓一下
【講清楚,說明白!】服務管理服務器


(三)設置服務開機自動啓動
(3.1)若是咱們如今但願系統的sshd服務在開機後可以自動啓動,咱們可使用以下的方式進行設置。
# systemctl is-enabled sshd.service---查詢sshd服務是否設置了開機自動啓動
# systemctl disable sshd.service---設置sshd服務開機不會自動啓動
# systemctl enable sshd.service---設置sshd服務開機可以自動啓動
【講清楚,說明白!】服務管理
(3.2)若是咱們想將一個服務設置爲「禁用」的模式,則可使用mask命令設置服務是否爲禁用的狀態。
# systemctl mask sshd---將sshd服務設置爲「禁用」模式
# systemctl is-active sshd.service---查詢當前sshd服務的狀態
# systemctl stop sshd---將sshd服務中止
# systemctl start sshd---此時發現沒法正常的啓動sshd服務了
# systemctl unmask sshd.service---解除sshd服務的「禁用」模式
【講清楚,說明白!】服務管理
(3.3)若是咱們想查看服務的狀態時,可使用status參數查看服務的狀態信息。
# systemctl status sshd---查詢系統中sshd服務的狀態
# systemctl status sshd -l---查詢系統中sshd服務的狀態,以及更詳細的信息
【講清楚,說明白!】服務管理ssh


(四)服務是如何定義的
(4.1)如今咱們但願本身可以定義一個服務memload,咱們首先將memload-7.0-1.r29766.x86_64.rpm軟件下載到vms002主機上(圖4-1),接着咱們將memload軟件包安裝起來,此時咱們發如今/usr/local/bin/目錄下存在一個memload文件(圖4-2)。
【講清楚,說明白!】服務管理
【講清楚,說明白!】服務管理
(4.2)接着咱們在vms002主機上建立一個memload.service的文件,同時在文件中指明,若是開啓服務,會指定消耗的內存空間,若是中止服務的時候,會執行殺死memload進程的操做(圖4-3)。而後咱們將memload.service配置文件考本到/usr/lib/systemd/system/目錄中,此時咱們在系統中便會發現已經有memload.service服務生成了(圖4-4)。此時咱們將memload服務運行起來後發現自定義的服務啓動後,系統的used部分的內存使用量確實增長了1G左右(圖4-5)。自定義服務,定製服務
# systemctl start memload---將自定義的服務memload啓動
# ps aux | grep -v grep | grep memload---咱們查詢系統是否有memload服務在運行
【講清楚,說明白!】服務管理
【講清楚,說明白!】服務管理
【講清楚,說明白!】服務管理
(4.3)而後咱們將memload服務中止後,發現此時系統的used使用空間又恢復到了最開始沒有沒消耗1G內存的狀態了。
# systemctl stop memload.service---將memload服務中止運行
# ps aux | grep -v grep | grep memload---咱們查詢系統是否有memload服務在運行
# free -m---查詢系統的內存空間使用狀況
注意:經驗總結# ps axj | more---能夠查詢後臺全部守護進程的狀況daemon,後臺守護進程,後臺進程
【講清楚,說明白!】服務管理
(4.4)當咱們啓動一個服務的時候,則在後臺會啓動一個命令,這個命令咱們稱之爲守護進程daemon,服務就是一個文件來管理daemon。若是有時候咱們想要查看某個daemon的配置文件的位置,可使用status參數(圖4-7),此時咱們即可以看到sshd.service配置文件中關於ExecStart和ExecReload的配置信息(圖4-8)。
# systemctl status sshd---查詢sshd服務的狀態
【講清楚,說明白!】服務管理
【講清楚,說明白!】服務管理
(4.5)若是咱們須要查詢一個服務配置文件的路徑時,可使用which命令便可,即可以查詢到服務執行的命令的可執行文件的位置了。
# which sshd---查詢出sshd服務具體執行的命令的路徑
# cat /usr/lib/systemd/system/sshd.service
【講清楚,說明白!】服務管理socket


(五)運行級別:瞭解後綴爲target的服務
(5.1)通常咱們在系統中使用tab鍵時能夠進行命令的快速索引的,而咱們若是使用最小化安裝系統的時候會發現沒法使用快速索引的功能,此時咱們應該安裝bash-completion.noarch這個軟件包,而後將系統重啓一下,此時咱們便又可使用tab命令快速索引的功能了。自動補全,自動補齊
# yum install bash-completion.noarch -y
【講清楚,說明白!】服務管理
(5.2)在咱們系統中有不少類型的服務,例若有後綴爲service的服務,也有後綴爲socket的服務,還有後綴爲mount的服務,咱們如今來關注的是後綴爲target的服務。
# systemctl list-unit-files --type target---查詢後綴爲target的服務
【講清楚,說明白!】服務管理
(5.3)所謂target的服務,實際上相似於RHEL 6所說的運行級別的概念。咱們在開機後通過了BIOS加電自檢-->GRUB引導程序-->內核初始化,此時會讀取/etc/fstab文件中的內容,掛載各個設備,同時啓動各個服務。此時在咱們的系統中是存在多個選擇的,例如咱們有0-6一共7個服務可供選擇,假設A、B、C、D表明的是系統普通服務,X表明的是圖形化界面服務。例如咱們如今想要運行rc5.d服務,此時系統啓動起來後,咱們系統中就會有ABDX服務在運行了。若是咱們如今已經在rc5.d的級別運行了,此時咱們但願可以切換到rc3.d的級別運行,那麼系統須要作的是將當前運行的ADX服務關閉,而後將沒有運行的C服務開啓,此時咱們系統就進入了rc3.d的運行級別了。通常系統默認的運行級別是rc5.d,它是在/etc/inittab文件的最後一行定義的。
【講清楚,說明白!】服務管理
(5.4)在RHEL 6系統中,對於運行級別咱們通常作以下的定義,其中rc0.d表示的是「關機」;rc1.d表示的是「單用戶模式」或「救援模式」;rc2.d表示的是「命令行」模式,可是不能使用nfs;rc3.d表示的是「全模式」即全部功能均可以使用,可是隻在字符界面操做;rc4.d屬於未分配的模式;rc5.d表示是「全模式」,同時是圖形化的操做界面;rc6.d表示的是「重啓」。咱們使用runlevel命令就能夠查看當前系統是屬於哪一個運行級別,若是咱們想關機能夠執行init 0,若是咱們想重啓系統則能夠執行init 6
# runlevel---查看系統的運行級別
# init 6---重啓系統
【講清楚,說明白!】服務管理
(5.5)在RHEL 7系統中咱們所看到後綴爲target的服務其實就是運行級別。其中RHEL 7系統的各個運行級別和RHEL 6系統運行級別的對好比下圖所示。默認狀況下咱們的系統啓動後的運行級別爲「runlevel5.target」或「graphical.target」即圖形化界面的模式,咱們能夠經過get-default命令查看系統的默認級別。
# systemctl get-default---查詢系統的默認級別
【講清楚,說明白!】服務管理
【講清楚,說明白!】服務管理
(5.6)若是咱們但願將當前的運行級別臨時切換爲多用戶字符命令模式,則可使用isolate命令(圖5-7),臨時切換系統的運行級別爲字符界面多用戶模式,此時咱們發現此時系統當前的運行級別已是3級別了(圖5-8)。
# systemctl isolate multi-user.target---臨時切換系統的運行級別爲字符界面多用戶模式
【講清楚,說明白!】服務管理
【講清楚,說明白!】服務管理
(5.7)如今咱們在字符界面輸入startx命令後便進入了圖形化的界面了,此時咱們發現雖然是圖形化界面,可是系統的運行級別仍然是3即多用戶字符界面的模式。因爲咱們在(5.6)的操做步驟中已經將當前系統的運行級別臨時設置爲3了,因此此時3的運行級別下默認是不啓用X服務的,可是咱們是能夠單獨額外的啓動X服務。若是咱們想要切換到圖形化界面運行,則可使用isolate命令臨時設置當前的狀態爲graphical.target模式。
【講清楚,說明白!】服務管理
【講清楚,說明白!】服務管理
(5.8)注意在RHEL 6系統中若是咱們是屬於運行級別5圖形化界面,而後咱們使用Ctrl+alt+F2進入到字符界面後,此時咱們在字符界面執行startx命令,是沒法正常的執行成功的,執行後產生了衝突,系統會認爲我如今已是在運行級別5的,並且已經能執行一個startx的服務,不能在執行第二個一樣的服務的。
(5.9)咱們在vms002主機的系統中默認的運行級別是graphical.target,若是咱們但願更改系統默認的運行級別,則應該使用set-default命令,此時咱們即可以使得系統默認的運行級別爲multi-user.target了(圖5-11)。此時的設置並不會影響系統當前的狀態,咱們發現系統的當前狀態仍然爲graphical.target圖形化界面,而重啓系統主要能夠經過圖5-12的四種方法進行。
# systemctl get-default---查詢系統當前的默認運行級別
# systemctl set-default multi-user.target---修改系統默認的運行級別爲multi-user.target
# reboot---重啓系統方法1
# init 6---重啓系統方法2
# systemctl isolate reboot.target---重啓系統方法3
# systemctl isolate runlevel6.target---重啓系統方法4
【講清楚,說明白!】服務管理
【講清楚,說明白!】服務管理
(5.10)重啓系統後,此時咱們默認是進入到了命令行字符的界面,而後咱們使用isolate命令設置登陸圖形化界面graphical.target(圖5-13),此時咱們發現系統的默認運行級別仍然設置的爲multi-user.target,因此即便系統再次重啓也仍然是進入命令行字符界面(圖5-14)。
# systemctl isolate graphical.target---臨時切換登陸到圖形化的界面
【講清楚,說明白!】服務管理
【講清楚,說明白!】服務管理
(5.11)咱們但願查看圖形化界面的服務是在哪裏定義的,咱們可使用systemctl status命令進行查詢(圖5-15),而後咱們即可以在/usr/lib/systemd/system/目錄中找到graphical.target服務的配置文件並查看配置文件的詳細信息(圖5-16和圖5-17)。
# systemctl status vsftpd---查詢vsftpd服務的狀態
# cd /usr/lib/systemd/system/
# vim graphical.target
【講清楚,說明白!】服務管理
【講清楚,說明白!】服務管理
【講清楚,說明白!】服務管理ide

—————— 本文至此結束,感謝閱讀 ——————命令行

相關文章
相關標籤/搜索