国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux源碼包服務管理(啟動與自啟動)

2024-08-27 23:56:33
字體:
來源:轉載
供稿:網友
本節我們先學習源碼包服務的啟動管理,再來學習源碼包服務的自啟動管理,最后學習如何讓源碼包服務被系統服務管理命令識別。

源碼包服務的啟動管理

源碼包服務中所有的文件都會安裝到指定目錄當中,并且沒有任何垃圾文件產生(linux 的特性),所以服務的管理腳本程序也會安裝到指定目錄中。源碼包服務的啟動管理方式就是在服務的安裝目錄中找到管理腳本,然后執行這個腳本。

問題來了,每個服務的啟動腳本都是不一樣的,我們怎么確定每個服務的啟動腳本呢?還記得在安裝源碼包服務時,我們強調需要査看每個服務的說明文檔嗎(一般是 INSTALL 或 READEM)?在這個說明文檔中會明確地告訴大家服務的啟動腳本是哪個文件。

我們用 apache 服務來舉例。一般 apache 服務的安裝位置是 /usr/local/apache2/ 目錄,那么 apache 服務的啟動腳本就是 /usr/local/apache2/bin/apachectl 文件(查詢 apache 說明文檔得知)。啟動命令如下:

[root@localhost ~]# /usr/local/apache2/bin/apachectl start|stop|restart|...
#源碼包服務的啟動管理

例如:

[root@localhost ~]# /usr/local/apache2/bin/apachectl start
#會啟動源碼包安裝的apache服務

注意,不管是源碼包安裝的 apache,還是 RPM 包默認安裝的 apache,雖然在一臺服務器中都可以安裝,但是只能啟動一因為它們都會占用 80 端口。

源碼包服務的啟動方法就這一種,比 RPM 包默認安裝的服務要簡單一些。

源碼包服務的自啟動管理

源碼包服務的白啟動管理也不能依靠系統的服務管理命令,而只能把標準啟動命令寫入 /etc/rc.d/rc.local 文件中。系統在啟動過程中讀取 /etc/rc.d/rc.local 文件時,就會調用源碼包服務的啟動腳本,從而讓該服務開機自啟動。命令如下:

[root@localhost ~]# vi /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 don11
#want to do the full Sys V style init stuff.
touch /var/lock/subsys/local /usr/local/apache2/bin/apachectl start
#加入源碼包服務的標準啟動命令,保存退出,源碼包安裝的apache服務就被設為自啟動了

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

在默認情況下,源碼包服務是不能被系統的服務管理命令所識別和管理的,但是如果我們做一些設定,則也是可以讓源碼包服務被系統的服務管理命令所識別和管理的。不過筆者并不推薦大家這樣做,因為這會讓本來區別很明確的源碼包服務和 RPM 包服務變得容易混淆,不利于系統維護和管理。

我們做一個實驗,看看如何把源碼包安裝的 apache 服務變為和 RPM 包默認安裝的 apache 服務一樣,可以被 service、chkconfig、ntsysv 命令所識別。實驗如下:

1) 卸載RPM包默認安裝的apache服務

[root@localhost ~]# yum -y remove httpd
#卸載RPM包默認安裝的apache服務,避免對實驗產生影響(在生產服務器上慎用yum卸載,因為這有可能造成服務器崩潰)
[root@localhost ~]# service httpd start httpd:未被識別的服務
#因為服務被卸載,所以service命令不能識別httpd服務

2) 安裝源碼包的apache服務,并啟動

#安裝源碼包的apache服務
[root@localhost ~]# /usr/local/apache2/bin/apachect1 start
[root@localhost ~]# netstat -tlun | grep 80
tcp 0 0 :::80 :::* LISTEN
#啟動源碼包安裝的apache服務,查看端口確定已經啟動

3) 讓源碼包安裝的apache服務能被service命令管理啟動

[root@localhost ~]# ln -s /usr/local/apache2/bin/apachectl /etc/±nit.d/apache
#service命令其實只是在/etc/init.d/目錄中查找是否有服務的啟動腳本,所以我們只需要做一個軟鏈接,把源碼包的啟動腳本鏈接到/etc/init.d/目錄中,就能被service命令所管理了。為了照顧大家的習慣,我把軟鏈接文件命名為apache,注意這不是RPM包默認安裝的apache服務
[root@localhost ~]# service apache restart
#雖然RPM包默認安裝的apache服務被卸載了,但是service命令也能夠生效

4) 讓源碼包安裝的apache服務能被chkconfig命令管理自啟動

[root@localhost ~]# vi /etc/init.d/apache
#修改源碼包安裝的apache服務的啟動腳本(注意此文件是軟鏈接,所以修改的還是源碼包啟動腳本)
#!/bin/sh
#
#chkconfig: 35 86 76
#指定httpd腳本可以被chkconfig命令所管理
#格式是:chkconfig:運行級別 啟動順序 關閉順序
#這里我們讓apache服務在3和5級別中能被chkconfig命令所管理,啟動順序是S86,關閉順序是K76
#(自定順序,不要和系統中已有的啟動順序沖突)
#description: source package apache
#說明,內容隨意
#以上兩句話必須加入,才能被chkconfig命令所識別 ...省略部分輸出...
[root@localhost ~]# chkconfig --add apache
#讓chkconfig命令能夠管理源碼包安裝的apache服務
[root01ocalhost ~]# chkconfig --list | grep apache
apache 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉
#很神奇吧,雖然RPM包默認安裝的apache服務被刪除了,但是chkconfig命令可以管理源碼包安裝的tapache服務

5) 讓ntsysv命令可以管理源碼包安裝的apache服務

#ntsysv 命令其實和 chkconfig 命令使用同樣的管理機制,也就是說,ntsysv 已經可以進行源碼包安裝 apache 服務的自啟動管理了,如圖 1 所示


圖 1 ntsysv 命令識別 apache
總結一下,如果想讓源碼包服務被service命令所識別和管理,則只需做一個軟鏈接把啟動腳本鏈接到 /etc/init.d/ 目錄中即可。要想讓源碼包服務被 chkconfig 命令所是被,除了需要把服務的啟動腳本鏈接到 /etc/init.d/ 目錄中,還要修改這個啟動腳本,在啟動腳本的開頭加入如下內容:

#chkconfig:運行級別 啟動順序 關閉
#description:說明

然后需要使用"chkconfig--add 服務名"的方式把服務加入 chkconfig 命令的管理中。命令格式如下:

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

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

例如:

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 襄汾县| 东丰县| 济阳县| 漳平市| 西安市| 潮安县| 金沙县| 高密市| 建平县| 佛冈县| 鄂温| 吴江市| 广宁县| 绥江县| 金昌市| 彝良县| 许昌市| 会同县| 巫山县| 綦江县| 吉首市| 博客| 镇康县| 莱州市| 安平县| 绿春县| 抚顺市| 司法| 通海县| 长治县| 紫金县| 龙门县| 镇远县| 出国| 噶尔县| 中江县| 秀山| 衡东县| 太谷县| 永德县| 轮台县|