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...