linux systemctl命令詳解

2021-10-01 05:41:23 字數 4153 閱讀 5247

systemd:系統啟動和伺服器守護程序管理器,負責在系統啟動或執行時,啟用系統資源,伺服器進 程和其它程序

新特性:

系統引導時實現服務並行啟動

按需啟動守護程序

自動化的服務依賴關係管理

同時採用socket式與d-bus匯流排式啟用服務

系統狀態快照

systemd核心概念unit(單元)型別:unit表示不同型別的systemd物件,通過配置檔案進行標識和配置;

檔案中主要包含了系統服務、監聽socket、儲存的系統快照以及其它與init相關的資訊

unit型別 :

service :擴充套件名為.service, 用於定義系統服務

target :擴充套件名為.target,用於模擬實現執行級別

device :用於定義核心識別的裝置

mount:定義檔案系統掛載點

socket:用於標識程序間通訊用的socket檔案,也可在系統啟動時,延遲啟動服務,實現按需啟動

snapshot :管理系統快照

swap:用於標識swap裝置

automount :檔案系統的自動掛載點

path:用於定義檔案系統中的乙個檔案或目錄使用,常用於當檔案系統變化時,延遲啟用服務

那麼如何檢視這些型別呢?其實很簡單只需執行 systemctl -t service typt

我們以target為例:

那麼命令中的systemctl是什麼呢?其實systemctl就是centos7中systemd的管理工具

systemctl命令的格式:systemctl command name.service service可以省略不寫

systemctl status atd 檢視當前服務的狀態

圖中黃色方框內表示此項服務已經開啟前面的圓點是綠色的,那麼下面我們將其關閉看看會有什麼不同?當然下面的兩個命令

也是經常用的(牢記哦)

當我們關閉服務之後狀態如上圖,接下了我們執行開啟命令執行結果如下:

以上的三個命令比較重要,要牢記。接下了我們來學習一下服務檢視的一些命令

檢視某服務當前的啟用狀態

檢視已經啟用的服務

檢視所有的服務包括開啟和關閉的(紅色方框是關閉的黃色方框是當前啟用的)

顯示當前服務的狀態

service unit檔案格式

/usr/lib/systemd/system目錄下有很多這樣的檔案,如圖:

我們隨便開啟乙個檔案例如第乙個:裡面的各項資訊下面會詳細介紹

unit段的常用選項:

description:描述資訊

after:定義unit的啟動次序,表示當前unit應該晚於哪些unit啟動,其功能與before相反

requires:依賴到的其它units,強依賴,被依賴的units無法啟用時,當前unit也無法啟用

wants:依賴到的其它units,弱依賴

conflicts:定義units間的衝突關係

******:預設值,這個daemon主要由execstart接的指令串來啟動,啟動後常駐於記憶體中

forking:由execstart啟動的程式透過spawns延伸出其他子程式來作為此daemon的主要服務。原生父程式在啟動結束後 就會終止

oneshot:與******類似,不過這個程式在工作完畢後就結束了,不會常駐在記憶體中

dbus:與******類似,但這個daemon必須要在取得乙個d-bus的名稱後,才會繼續運作.因此通常也要同時設定 busnname= 才行

notify:在啟動完成後會傳送乙個通知訊息。還需要配合 notifyaccess 來讓 systemd 接收訊息

idle:與******類似,要執行這個daemon必須要所有的工作都順利執行完畢後才會執行。這類的daemon通常是開機到最 後才執行即可的服務

[install]:定義由「systemctl enable」以及"systemctl disable「命令在實現服務啟用或禁用時用到的一些選項

alias:別名,可使用systemctl command alias.service

requiredby:被哪些units所依賴,強依賴

wantedby:被哪些units所依賴,弱依賴

also:安裝本服務的時候還要安裝別的相關服務

以上就是systemctl的一些常用命令和功能,下面是一些其他的命令以供參考:

顯示所有單元狀態

systemctl 或 systemctl list-units

只顯示服務單元的狀態

systemctl --type=service

顯示sshd服務單元

systemctl –l status sshd.service

驗證sshd服務當前是否活動

systemctl is-active sshd

啟動,停止和重啟sshd服務

systemctl start sshd.service

systemctl stop sshd.service

systemctl restart sshd.service

systemctl reload sshd.service

列出活動狀態的所有服務單元

systemctl list-units --type=service

列出所有服務單元

systemctl list-units --type=service --all

檢視服務單元的啟用和禁用狀態

systemctl list-unit-files --type=service

列出失敗的服務

systemctl --failed --type=service

列出依賴的單元

systemctl list-dependencies sshd

驗證sshd服務是否開機啟動

systemctl is-enabled sshd

禁用network,使之不能自動啟動,但手動可以

systemctl disable network

啟用network

systemctl enable network

禁用network,使之不能手動或自動啟動

systemctl mask network

啟用network

systemctl unmask network

檢視依賴性:

systemctl list-dependencies graphical.target

級別切換:init n ==> systemctl isolate name.target

systemctl isolate multi-user.target

注:只有/lib/systemd/system/*.target檔案中allowisolate=yes 才能切換(修改檔案需執行systemctl daemon-reload才能生效)

檢視target:target是服務的集合

runlevel ; who -r

systemctl list-units --type target

獲取預設執行級別:

/etc/inittab ==> systemctl get-default

修改預設級別:

/etc/inittab ==> systemctl set-default name.target

systemctl set-default multi-user.target

ls –l /etc/systemd/system/default.target

切換至緊急救援模式:

systemctl rescue

切換至emergency模式:

systemctl emergency

其它常用命令:

傳統命令init,poweroff,halt,reboot都成為

systemctl的軟鏈結

關機:systemctl halt、systemctl poweroff

重啟:systemctl reboot

掛起:systemctl suspend

休眠:systemctl hibernate

休眠並掛起:systemctl hybrid-sleep

Linux systemctl命令筆記

指令格式 systemctl command unit 常用指令 1.啟動 systemctl start 2.停止 systemctl stop 3.重啟 systemctl restart systemctl reload 5.開機自啟 systemctl enable 6.開機不自啟 syst...

Android MTK Android 編譯命令

命令格式 maketek option project action modules option t tee 輸出log資訊到當前終端 o opt 編譯附加條件,一般使用 opt target build variant user來編譯使用者板軟體 h help 列印幫助資訊並退出 project...

applicationContext的命名空間

xsi schemalocation spring beans.xsd xmlns xmlns 宣告了乙個命名空間 例如 xmlns aop 這樣就可以用標籤了.通常情況下還需要提供乙個對映位址.比如 xmlns aop 提供乙個對映位址後變為 xmlns aop xsi schemalocatio...