網站首頁 編程語言 正文
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
服務一樣,可以被service
,chkconfig
,ntsysv
命令識別。
我們所要解決的問題如下圖:
(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
相關推薦
- 2022-11-28 Android開發框架MVC-MVP-MVVM-MVI的演變Demo_Android
- 2022-06-28 使用?Docker?Compose?構建復雜的多容器?App的方法_docker
- 2022-07-07 ASP.NET對Cookie的操作_ASP.NET
- 2022-03-14 Prefix must be in canonical form
- 2022-04-03 深入了解Python如何操作MongoDB_python
- 2022-08-01 GoLand一鍵上傳項目到遠程服務器的方法步驟_Golang
- 2022-10-03 go?Antlr重構腳本解釋器實現示例_Golang
- 2022-06-08 問題記錄:HttpServletRequestWrapper導致跨域失敗的問題
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支