在Linux系統中,有一些特殊程式,啟動後就會持續在背景執行,等待使用者或者其他軟體調用使用,這種程式我們成為服務。
Linux系統中服務的管理工具
systemV
systemd
一、systemV于init
systemV當中有一個程式叫init,這個程式可以讓系統中的service指令去調用/etc/rc.d/init.d/目錄下的服務腳本,我們可以通過service指令去控制服務的啟動與關閉,或者找到服務相應的執行檔案,然後執行,比如/usr/sbin/httpd,這樣才能啟動一個服務。
該服務管理方式在RHEL7之前的系統中預設。
init的特點
啟動/停止/檢視
/etc/rc.d/init.d/servername start/stop/restart/status
或
service servicename start/stop/restart/status
開機啟動管理與檢視
chkconfig --level 0-6 servername on/off 指定一個服務在那個運作級别啟動
chkconfig --list servernamer 檢視一個服務在哪個運作級别啟動
setup圖形化工具檢視服務
setup是RedHat私有化的指令工具,别的系統不一定支援
方式1:使用setup 系統服務就可以看到全部自啟動的服務
選擇系統服務檢視全部service

用方向鍵選擇服務名稱,空格鍵標明服務是否設定為自啟動。tab鍵切換到下面“确定|退出”
二、systemd與unit
從CentOS7開始systemV,被效率更高的systemd所替代,對應指令systemctl ,并且systemctl也相容了service (service指令作為systemd的入口,也是systemctl指令的封裝)。
system的優勢
并行處理所有服務,縮短開機時間
響應速度快,通過systemctl指令就可以完成所有操作
自動解決服務的依賴關系,類似yum
友善記憶,安裝類型對服務進行分類
相容init
相關檔案
/usr/lib/systemd/system/ 服務的啟動腳本,包含所有安裝完成的服務設定檔案
/run/system/system/ 系統運作過程中的服務腳本優先級高于上一個檔案
/etc/systemd/system/ 管理者手動建立的服務啟動腳本,優先級最高
服務類型
⚪systemctl 管理指令
基本文法:systemctl [start|stop|restart|status] 服務名 (臨時生效,重新開機後恢複原來狀态)
在systemd中,所有服務類型都被稱為unit,主要分成6類:.service, .socket, .target, .path, snapshothot, .timer,它們都存放在/usr/lib/systemd/system/目錄中
⚪systemctl設定服務的自啟動狀态
systemctl list-unit-files [ |grep 服務名] (檢視服務開機啟動狀态)
systemctl enable 服務名(設定開機自啟)
systemctl disable 服務名 (關閉服務開機自啟動,CentOS7之後,不在使用chkconfig指令對各個運作級别的服務啟動|關閉了,systemd預設對應的就是3和5兩個級别)
systemctl is-enabled 服務名 (查詢某個服務是否開機自啟動)
systemctl list-units --type=service -all 列出所有service服務單元運作狀态
systemctl list-unit-files 查詢所有已經安裝的unit單元,是否設定開機啟動。
⚪應用案例
1.systemctl list-unit-fiels 檢視所有安裝的unit,是否設定開機啟動
ervice 的 disabled 和 enabled 狀态都好了解,static 是個啥?在不存在的網站上一頓查找,找到如下這番解釋:
"static" means "enabled because something else wants it". Think by analogy to pacman's package install reasons:
enabled :: explicitly installed
static :: installed as dependency
disabled :: not installed
意思是,狀态為 static 的服務,是作為别的服務的依賴而存在。
2.檢視目前防火牆的狀态,關閉防火牆或重新開機防火牆。==》firewalld.service
檢視firewalld狀态為active
systemctl stop|start firewalld 開啟|關閉firewalld服務
這種方式隻是臨時生效,當重新開機系統後,還是回歸到以前對服務的設定。
使用systemtcl enabl | disable firewalld(設定開機啟動或關閉服務)