日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

linux下源碼包安裝的服務管理_Linux

作者:繁華似錦Fighting ? 更新時間: 2022-02-09 編程語言

1、源碼包服務的啟動管理

# 通過源碼包的安裝路徑,找到該服務的啟動腳本,
# 也就是獲得該服務的啟動腳本的絕對路徑,
# 最后加上啟動選項。
[root@localhost ~]# /usr/local/apache2/bin/apachectl start|stoplrestart|...

注意:

按用源碼包安裝服務的時候,每個服務的啟動腳本是不同的。

我們如何知道一個服務的啟動腳本叫什么名稱呢?

在官方給你的安裝文檔中,會明確的告訴你該服務的啟動腳本叫什么名稱。

開啟服務示例:

說明:

這個報錯說的是localhost.localdomain這個主機名沒有被識別,但是apache服務啟動起來是沒有問題的。

查看apache服務是否開啟,執行命令ps aux | grep httpd

如下圖所示:

2、源碼包服務的自啟動管理

通過配置/etc/rc.d/rc.local配置文件,來實現通過源碼包安裝的服務的自啟動管理。

這個方法是通用的,不論是源碼包還是RPM包安裝的服務都可以,主要看的是你在/etc/rc.d/rc.local配置文件中寫的是源碼包安裝的服務啟動命令,還是通過RPM包安裝的服務啟動命令。

所以在上文中推薦使用配置文件的方式進行服務的管理,通用、統一管理Linux系統中的服務。

示例:

# 配置/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
/usr/local/apache2/bin/apachectl start

3、讓源碼包服務被服務管理命令識別

我們接下來就做個試驗,把通過源碼包安裝的apche服務,變為和RPM包安裝的apache服務一樣,可以被servicechkconfigntsysv命令識別。

我們所要解決的問題如下圖:

(1)讓通過源碼包安裝的服務能被service命令管理啟動

service命令其實只是在/etc/rc.d/init.d/目錄中查找是否有服務的啟動腳本,所以我們只需要做個軟鏈接,把源碼包的啟動腳本鏈接到/etc/rc.d/init.d/目錄中,就能被service命令管理了。

# 將通過源碼包安裝的服務的啟動腳本,在/etc/rc.d/init.d/目錄中做一個軟鏈接
[root@localhost ~]# ln -s /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/apachectl

查看/etc/rc.d/init.d/內容,如下圖所示:

執行service apachectl restart命令,開啟apche服務。

可以看到apche服務可以通過service 命令進行啟動了,沒有報未被識別的服務錯誤。

(2)讓通過源碼包安裝的服務能被chkconfig命令管理自啟動

接上一步,然后需要對軟鏈接到/etc/rc.d/init.d/目錄,通過源碼包安裝的服務的啟動腳本進行配置。

# 編輯/etc/rc.d/init.d/目錄中的源碼包啟動腳本
# (注意此文件是軟鏈接,所以修改的還是源碼包啟動腳本)
[root@localhost ~]# vim /etc/rc.d/init.d/apachectl

# 在開頭添加內容如下
#!/bin/sh
# 添加內容-1
# 指定httpd腳本可以被chkconfig命令管理
# 格式是:chkconfig:運行級別啟動順序關閉順序
# 這里我們設定apache在3和5級別能被chkconfig命令管理,啟動順序是S86,關閉順序是K76
# 注意:(自定順序,不要和系統中已有的啟動程序順序沖突)
# chkconfig:35 86 76
#
# 添加內容-2
# 說明,內容隨意
# description:aaabbbccc

#以上兩句話必須加入,才能被chkconfig命令識別。

然后讓chkconfig命令能夠管理源碼包安裝的服務。

[root@localhost ~]# chkconfig --add apachectl

沒有報錯說明成功。

通過chkconfig命令查看Linux中自啟動服務。

如下圖所示:

然后可以通過chkconfig命令開啟該服務的自啟動狀態了。

(3)讓ntsysv命令可以管理通過源碼包安裝的服務

ntsysv命令其實是和chkconfig命令使用同樣的管理機制,也就是說上面chkconfig命令能夠管理源碼包安裝的服務,ntsysv命令也就可以管理通過源碼包安裝的服務了。

執行[root@localhost ~]# ntsysv命令,可以在圖形界面中找到我們上邊剛剛配置的apache服務。

(4)總結

如果想讓源碼包服務被service命令識別并管理,只要做個軟鏈接把啟動腳本鏈接到/etc/rc.d/init.d/目錄中即可。

要想讓源碼包服務被chkconfig命令識別,除了需要把服務的啟動腳本鏈接到/etc/rc.d/init.d/目錄中,還要修改這個啟動腳本,在啟動腳本的開頭加入:

# chkconfig:運行級別、啟動順序、關閉順序。

# description:說明信息。然后需要使用chkconfig --add 服務名的方式,把服務加入chkconfig命令管理中。

命令格式如下:

[root@localhost ~]# chkconfig [選項] [服務名]

選項:
  --add:把服務加入chkconfig命令的管理。
  --del:把服務從chkconfig命令的管理中刪除。

# 示例:
# 把apache服務從chkconfig命令的管理中刪除
[root@localhost ~]# chkconfig -del httpd

chkconfig命令配置完成,ntsysv命令也就可以管理該服務了。

提示:

知道源碼包安裝的服務可以這樣處理就可以了,并不推薦這樣做。通過源碼包安裝的服務就用源碼包的方式啟動服務,通過RPM包方式安裝的服務,就用RPM包的方式啟動服務,就很好。

原文鏈接:https://www.cnblogs.com/liuyuelinfighting/p/15687500.html

欄目分類
最近更新