做不銹鋼網(wǎng)站網(wǎng)絡(luò)營銷ppt講解
一、Linux系統(tǒng)的服務(wù)簡介
????????服務(wù)是向外部提供對應(yīng)功能的進(jìn)程,其運行在系統(tǒng)后臺,能夠7*24小時持續(xù)不斷的提供外界隨時發(fā)來的服務(wù)請求,且服務(wù)進(jìn)程常駐在內(nèi)存中,具有固定的端口號,通過端口號就能找到服務(wù)內(nèi)容。
????????提供服務(wù)的一端叫做服務(wù)端,向服務(wù)端發(fā)送請求內(nèi)容的叫做客戶端,具體的流程為:
1、首先服務(wù)器端啟動服務(wù)進(jìn)程,服務(wù)進(jìn)程正常運行后會開放對應(yīng)的固定端口號(比如80、8080、5000等端口);
2、然后客戶端向服務(wù)端對應(yīng)的(IP:服務(wù)端口)發(fā)起請求;
3、服務(wù)端所在主機(jī)的內(nèi)核接收到客戶發(fā)送來的請求數(shù)據(jù)包,系統(tǒng)內(nèi)核會分析數(shù)據(jù)包內(nèi)容(識別請求的端口號后,內(nèi)核會對應(yīng)到該該端口號對應(yīng)的服務(wù)程序,系統(tǒng)內(nèi)核會將客戶端發(fā)送來的請求報文內(nèi)容發(fā)送給對應(yīng)的服務(wù)程序,服務(wù)程序收到報文后,就會與客戶端建立連接處理對應(yīng)的內(nèi)容,并進(jìn)行數(shù)據(jù)傳輸工作。
????????在Linux中,服務(wù)分為【獨立守護(hù)進(jìn)程】和超【級守護(hù)進(jìn)程(瞬時守護(hù)進(jìn)程)】;獨立守護(hù)進(jìn)程是指(自行在后臺實時監(jiān)聽客戶端發(fā)送來的請求內(nèi)容并進(jìn)行處理,基本上所有的服務(wù)都是獨立守護(hù)進(jìn)程類的服務(wù))。超級守護(hù)進(jìn)程是專指xinetd這個服務(wù),這個服務(wù)代為管理著一些特殊的系統(tǒng)服務(wù),這類服務(wù)只有在被請求的時候才會由xinetd通知它啟動對應(yīng)服務(wù),服務(wù)提供處理工作完成后就關(guān)閉服務(wù),這類服務(wù)稱為瞬時守護(hù)進(jìn)程,即存在的時間非常短暫。
????????簡單的說【服務(wù)是類指那些在系統(tǒng)后臺持續(xù)運行并提供基本功能,常駐內(nèi)存中(如網(wǎng)絡(luò)連接、SSH登錄、日志管理等功能)的程序】。
二、Linux服務(wù)的常用操作_Centos7及其更高版本
2.1、列出Linux所有服務(wù)和狀態(tài)
1、查看Linux系統(tǒng)中的所有服務(wù)
systemctl list-units --type service --all
2、查看Linux系統(tǒng)所有服務(wù)的開機(jī)自啟動狀態(tài)命令:
systemctl list-unit-files
3、查看所有已經(jīng)激活的服務(wù)命令
systemctl list-units --type service
2.2、查看服務(wù)狀態(tài)
????????比如我這里查看httpd服務(wù)狀態(tài),其中狀態(tài)(Active:active(running)表示已經(jīng)啟動運行中);Active:inactive(dead)表示停止):?
systemctl status 服務(wù)名稱
systemctl status 服務(wù)名稱.service
查看服務(wù)是否在運行中命令:
systemctl is-active 服務(wù)名稱
2.3、啟動服務(wù)
systemctl start 服務(wù)名稱
????????比如我這里重啟httpd服務(wù),且查看啟動后的狀態(tài)(Active:active(running)表示已經(jīng)啟動運行中):??
systemctl start 服務(wù)名稱.service
2.4、停止服務(wù)
systemctl stop 服務(wù)名稱
????????比如我這里停止httpd服務(wù),且查看停止后的狀態(tài)(Active:inactive(dead)表示停止):??
systemctl stop 服務(wù)名稱.service
2.5、重啟服務(wù)
systemctl restart 服務(wù)名稱
????????比如我這里重啟httpd服務(wù),且查看重啟后的狀態(tài)(Active:active(running)表示已經(jīng)啟動運行中):?
systemctl restart 服務(wù)名稱.service
2.6、設(shè)置服務(wù)開機(jī)自啟
systemctl enable 服務(wù)名稱
systemctl enable 服務(wù)名稱.service
任選這2個命令中的一個就可以;需要注意的是:設(shè)置服務(wù)開啟自啟后如果要驗證的話,需要重啟服務(wù)器后再查看服務(wù)狀態(tài)為?(Active:active(running))即為設(shè)置服務(wù)開機(jī)自啟成功。
如下是立即重啟Linux服務(wù)器的命令:?
reboot -h now
查看服務(wù)是否開機(jī)自動啟動(enabled表示已經(jīng)啟動)?
systemctl is-enabled 服務(wù)名稱
2.7、禁用服務(wù)開機(jī)自啟
systemctl disable httpd
systemctl disable 服務(wù)名稱.service
任選這2個命令中的一個就可以;需要注意的是:禁用服務(wù)開啟自啟后如果要驗證的話,需要重啟服務(wù)器后再查看服務(wù)狀態(tài)為?(Active:inactive(dead)表示停止)即為禁用服務(wù)開機(jī)自啟成功。
?
三、服務(wù)的配置文件
????????對于支持 systemd 的程序,在安裝該軟件的時候,會自動的在 【/usr/lib/systemd/system
?】目錄添加一個關(guān)于該程序的服務(wù)配置文件(比如:我使用【yum install httpd -y】安裝了該程序,我們可以使用【cat /usr/lib/systemd/system/httpd.service】命令查看到該程序的服務(wù)配置文件內(nèi)容),如下圖所示:
在我們給httpd服務(wù)設(shè)置了開機(jī)自啟【systemctl enable httpd】命令后,可以看到在【/etc/systemd/system/multi-user.target.wants/】 目錄下添加了該程序的符號鏈接,這個鏈接指向【/usr/lib/systemd/system
?】里面的【httpd.service】文件
在設(shè)置了服務(wù)的開機(jī)啟動命令后,需要等下一次開機(jī)的時候,才會自動行 【/etc/systemd/system/
】?目錄中的文件服務(wù);可以通過【systemctl is-enabled httpd】命令查看服務(wù)是否設(shè)置開機(jī)自動啟動,如下圖所示:
注意:【/etc/systemd/system/】
是管理員根據(jù)需求建立的執(zhí)行腳本,也可以理解為是【/usr/lib/systemd/system/】
的連接映射。
3.1、systemctl
????????在 Centos7 之前是使用 service 進(jìn)行服務(wù)的管理,雖然service使用起來簡單,但對于每一個服務(wù),都需要我們?nèi)藶槭謩拥木帉憣?yīng)腳本文件來控制服務(wù)相關(guān)的啟動、停止、重啟等操作,服務(wù)控制得好壞,完全依賴于編寫腳本的人,這樣的話對于服務(wù)來說不是很穩(wěn)定,對于管理服務(wù)的人員也不友好。
????????為了解決service帶來的服務(wù)不穩(wěn)定,對管理服務(wù)人員不友好等問題,在 Centos7 中采用了新的【systemctl】服務(wù)管理工具,systemctl使用固定規(guī)范格式的腳本內(nèi)容來控制服務(wù)的啟動、停止等相關(guān)操作,使得服務(wù)的管理變得簡單了很多(即:對服務(wù)的啟動、停止、重啟、開機(jī)自啟等操作只需要一條命令就可實現(xiàn))
?3.2、systemd
面向管理員的 systemd,第 III 部分 (0pointer.de)https://0pointer.de/blog/projects/systemd-for-admins-3.htmlsystemd.unit (0pointer.de)
https://0pointer.de/public/systemd-man/systemd.unit.htmlsystemd.service (0pointer.de)
https://0pointer.de/public/systemd-man/systemd.service.html
systemd 基礎(chǔ)知識簡介 (suse.com)https://documentation.suse.com/smart/systems-management/html/systemd-basics/index.html
?
?
?
?