1. 程式人生 > >淺談linux6:以systemd為例,初探系統服務管理

淺談linux6:以systemd為例,初探系統服務管理

假如你用的不是很老版本的unix系統,那麼你一定對systemd不甚陌生。

檢視服務:systemctl status servicename

停止服務:systemctl stop  servicename

這些常見操作,基本大家都有涉及。

那麼,systemd到底是何方神聖呢?為什麼它可以管理那麼多的系統服務?它本身也是個服務麼?需要安裝麼?為什麼在開篇要提到版本差異?

systemd是linux下的一款init軟體,開發目標是提供更優秀的框架以表示系統服務間的依賴關係,並依此實現系統初始化時服務的並行啟動,同時達到降低shell的系統開銷的效果,最終墊底現在常用的system V與BSO風格的init程式。

這段話當然是我從百度百科抄下來的啦……

然後接著……什麼是init軟體?

init是linux不可或缺的一個程式,由核心啟動,用來對服務和應用程式進行初始化。

所以,現在,很多問題就迎刃而解了。

核心啟動systemd,systemd用來管理服務和應用。

當然也有更低版本的init程式,比如sysvinit。

附上小小的對比圖:


一些常用命令:

systemctl list-units ##列出當前系統服務的狀態
systemctl list-unit-files ##列出服務的開機狀態
systemctl status sshd ##檢視指定服務的狀態
systemctl stop sshd

##關閉指定服務
systemctl start sshd ##開啟指定服務
systemctl restart sshd ##從新啟動服務
systemctl enable sshd ##設定指定服務開機開啟
systemctl disable sshd ##設定指定服務開機關閉
systemctl reload sshd ##使指定服務從新載入配置
systemctl list-dependencies sshd ##檢視指定服務的倚賴關係
systemctl mask sshd ##凍結指定服務
systemctl unmask sshd ##啟用服務
systemctl set-default multi-user.target
##開機不開啟圖形

systemctl set-default graphical.target ##開機啟動圖形

服務狀態:

systemctl status 服務名稱

loaded ##系統服務已經初始化完成,載入過配置
active(running) ##正有一個或多個程式正在系統中執行,
        # vsftpd 就是這種模式
atcive(exited) ##僅執行一次就正常結束的服務,
        # 目前並沒有任何程式在系統中執行
atcive(waiting) ##正在執行當中,
        # 不過還再等待其他的事件才能繼續處理
inactive          ##服務關閉
enbaled ##服務開機啟動
disabled         ##服務開機不自啟
static ##服務開機啟動項不可被管理
failed ##系統配置錯誤