『學了就忘』Linux服務管理 — 76、RPM包安裝的服務管理
- 2021 年 12 月 13 日
- 筆記
- 測試基礎必會技能 - Linux系統
1、獨立服務的啟動管理
(1)使用/etc/init.d/
目錄中的啟動腳本啟動服務(推薦)
[root@localhost ~]# /etc/init.d/httpd start
或者
[root@localhost ~]# /etc/cr.d/init.d/httpd start
兩個是軟連的關係,用哪個目錄都行。
(2)使用service
命令來啟動獨立的服務
[root@localhost ~]# service 獨立服務名 start|stop|restart…
說明:
service
命令啟動服務,其實是/etc/init.d/
目錄中腳本啟動服務的簡化命令。
service
命令最終所搜的還是/etc/init.d/
目錄中的服務啟動腳本。
2、獨立服務的自啟動管理
提示:設置服務的自啟動,是我下次開機時候,該服務的自啟動配置,而不是設置此時該服務是否運行。
方式一:
使用chkconfig
服務自啟動管理命令。
[root@localhost ~]# chkconfig [--level 運行級別] [獨立服務名] [on|off]
選項:
--level:設定在哪個運行級別中開機自啟動(on),或是關閉自啟動(off)
# 示例:
[root@localhost ~]# chkconfig --level 2345 httpd on
練習:
# 1.先查看httpd服務的自啟動狀態
[root@localhost ~]# chkconfig --list | grep httpd
httpd 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉
# 2.設置httpd服務的自啟動
# httpd服務開啟自啟動默認的系統運行級別就是2345
# 所以可以簡寫:chkconfig httpd on 也是可以的
[root@localhost ~]# chkconfig --level 2345 httpd on
# 3.查看修改後的httpd服務自啟動狀態
[root@localhost ~]# chkconfig --list | grep httpd
httpd 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉
# 4.關閉httpd服務的自啟動
[root@localhost ~]# chkconfig httpd off
# 5.再次查看httpd服務的自啟動狀態
[root@localhost ~]# chkconfig --list | grep httpd
httpd 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉
方式二:(推薦)
修改/etc/rc.d/rc.local
文件,設置服務自啟動。
提示:/etc/rc.local
和/etc/rc.d/rc.local
是軟鏈接關係。
(如有忘記,請看這篇文章的最後一點)
# 配置/etc/rc.d/rc.local配置文件
[root@localhost ~]# vim /etc/rc.d/rc.local
# 內容
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/etc/rc.d/init.d/httpd start
注意:
最好不要寫
service
啟動方式,寫/etc/init.d/
路徑的方式啟動。因為service
啟動方式可能不能夠百分之百被執行。
提示:
有一個問題,我編輯好/etc/rc.local
配置文件,然後查詢httpd
服務的自啟動狀態,發現httpd
服務的自啟動狀態沒有改變,
如下圖所示:
原因:
第二種方式是修改/etc/rc.local
配置文件的方式實現服務自啟動,第一種方式是使用chkconfig
命令的方式實現服務自啟動,你不能用方式二修改,用方式一的方式查詢,因為兩種方式不相干。
所以修改/etc/rc.local
配置文件的方式配置服務自啟動,只能通過查看配置文件來判斷是否配置服務的自啟動。相反同理。
還有一點要注意的是,一個服務用一種方式配置就可以了。
總結:
推薦用第二種方式配置服務的自啟動管理。
RPM包安裝的服務啟動腳本都放在
/etc/cr.d/init.d/
目錄中了,service
命令、chkconfig
命令、ntsysv
命令都是到/etc/cr.d/init.d/
目錄中找服務的啟動腳本,來啟動服務。而源碼包安裝的服務,是手動安裝到指定位置的服務,你手動指定到哪裡,服務就安裝到哪個位置,所以以命令的方式是找不到源碼包安裝的服務的。
最後結論:
以命令方式不能直接管理源碼包安裝的服務,只有配置文件的方式既能能直接管理源碼包安裝的服務,又能管理rpm包安裝的服務,所以推薦方式二。
方式三:
使用ntsysv
命令管理自啟動:
[root@localhost ~]# ntsysv [--level 運行級別]
選項:
--level運行級別:可以指定設定自啟動的運行級別
ntsysv
命令和chkconfig
命令說明:
ntsysv
命令和chkconfig
命令是通用的,用一個命令修改完,另一個命令中是可以查看到的。
你可以理解成chkconfig
命令是手動命令行配置服務的開機自啟動,
而ntsysv
命令是通過圖形化界面配置服務的開機自啟動,
只不過ntsysv
命令默認賦予服務的自啟動(系統運行級別)範圍比較小。
如:chkconfig
命令開啟httpd
服務的自啟動默認系統運行級別開啟為2345,而ntsysv
命令只是開啟3級別。
如下圖所示:
示例:
# 1.執行ntsysv命令
[root@localhost ~]# ntsysv
# 2.或者加上系統運行級別
[root@localhost ~]# ntsysv --level 2345
出現ntsysv
命令的圖形化界面,如下圖所示:
操作方式:
- 上下鍵:在不同服務之間移動。
- 空格鍵:選定或取消服務的自啟動。就是在服務之前是否打入
*
。- tab鍵:在不同項目間切換。
- F1鍵:顯示服務的說明。
在終端窗口執行ntsysv
命令,所有通過RPM包安裝的服務,在這裡都能夠找到,包括基於xinetd
的服務。
3、驗證
配置完服務自啟動之後,重啟一下計算機,看一下所配置的自啟動服務是否啟動,就是這麼簡單。