新聞中心

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、霞浦ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的霞浦網(wǎng)站制作公司
源碼包服務(wù)的啟動(dòng)管理
源碼包服務(wù)中所有的文件都會(huì)安裝到指定目錄當(dāng)中,并且沒有任何垃圾文件產(chǎn)生(linux 的特性),所以服務(wù)的管理腳本程序也會(huì)安裝到指定目錄中。源碼包服務(wù)的啟動(dòng)管理方式就是在服務(wù)的安裝目錄中找到管理腳本,然后執(zhí)行這個(gè)腳本。
問題來了,每個(gè)服務(wù)的啟動(dòng)腳本都是不一樣的,我們怎么確定每個(gè)服務(wù)的啟動(dòng)腳本呢?還記得在安裝源碼包服務(wù)時(shí),我們強(qiáng)調(diào)需要査看每個(gè)服務(wù)的說明文檔嗎(一般是 INSTALL 或 READEM)?在這個(gè)說明文檔中會(huì)明確地告訴大家服務(wù)的啟動(dòng)腳本是哪個(gè)文件。
我們用 apache 服務(wù)來舉例。一般 apache 服務(wù)的安裝位置是 /usr/local/apache2/ 目錄,那么 apache 服務(wù)的啟動(dòng)腳本就是 /usr/local/apache2/bin/apachectl 文件(查詢 apache 說明文檔得知)。啟動(dòng)命令如下:
[root@localhost ~]# /usr/local/apache2/bin/apachectl start|stop|restart|...
#源碼包服務(wù)的啟動(dòng)管理
例如:
[root@localhost ~]# /usr/local/apache2/bin/apachectl start
#會(huì)啟動(dòng)源碼包安裝的apache服務(wù)
注意,不管是源碼包安裝的 apache,還是 RPM 包默認(rèn)安裝的 apache,雖然在一臺(tái)服務(wù)器中都可以安裝,但是只能啟動(dòng)一因?yàn)樗鼈兌紩?huì)占用 80 端口。
源碼包服務(wù)的啟動(dòng)方法就這一種,比 RPM 包默認(rèn)安裝的服務(wù)要簡單一些。
源碼包服務(wù)的自啟動(dòng)管理
源碼包服務(wù)的白啟動(dòng)管理也不能依靠系統(tǒng)的服務(wù)管理命令,而只能把標(biāo)準(zhǔn)啟動(dòng)命令寫入 /etc/rc.d/rc.local 文件中。系統(tǒng)在啟動(dòng)過程中讀取 /etc/rc.d/rc.local 文件時(shí),就會(huì)調(diào)用源碼包服務(wù)的啟動(dòng)腳本,從而讓該服務(wù)開機(jī)自啟動(dòng)。命令如下:
[root@localhost ~]# vi /etc/rc.d/rc.local
#修改自啟動(dòng)文件
#!/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
#加入源碼包服務(wù)的標(biāo)準(zhǔn)啟動(dòng)命令,保存退出,源碼包安裝的apache服務(wù)就被設(shè)為自啟動(dòng)了
讓源碼包服務(wù)被服務(wù)管理命令識(shí)別
在默認(rèn)情況下,源碼包服務(wù)是不能被系統(tǒng)的服務(wù)管理命令所識(shí)別和管理的,但是如果我們做一些設(shè)定,則也是可以讓源碼包服務(wù)被系統(tǒng)的服務(wù)管理命令所識(shí)別和管理的。不過筆者并不推薦大家這樣做,因?yàn)檫@會(huì)讓本來區(qū)別很明確的源碼包服務(wù)和 RPM 包服務(wù)變得容易混淆,不利于系統(tǒng)維護(hù)和管理。
我們做一個(gè)實(shí)驗(yàn),看看如何把源碼包安裝的 apache 服務(wù)變?yōu)楹?RPM 包默認(rèn)安裝的 apache 服務(wù)一樣,可以被 service、chkconfig、ntsysv 命令所識(shí)別。實(shí)驗(yàn)如下:
1) 卸載RPM包默認(rèn)安裝的apache服務(wù)
[root@localhost ~]# yum -y remove httpd
#卸載RPM包默認(rèn)安裝的apache服務(wù),避免對實(shí)驗(yàn)產(chǎn)生影響(在生產(chǎn)服務(wù)器上慎用yum卸載,因?yàn)檫@有可能造成服務(wù)器崩潰)
[root@localhost ~]# service httpd start httpd:未被識(shí)別的服務(wù)
#因?yàn)榉?wù)被卸載,所以service命令不能識(shí)別httpd服務(wù)
2) 安裝源碼包的apache服務(wù),并啟動(dòng)
#安裝源碼包的apache服務(wù)
[root@localhost ~]# /usr/local/apache2/bin/apachect1 start
[root@localhost ~]# netstat -tlun | grep 80
tcp 0 0 :::80 :::* LISTEN
#啟動(dòng)源碼包安裝的apache服務(wù),查看端口確定已經(jīng)啟動(dòng)
3) 讓源碼包安裝的apache服務(wù)能被service命令管理啟動(dòng)
[root@localhost ~]# ln -s /usr/local/apache2/bin/apachectl /etc/±nit.d/apache
#service命令其實(shí)只是在/etc/init.d/目錄中查找是否有服務(wù)的啟動(dòng)腳本,所以我們只需要做一個(gè)軟鏈接,把源碼包的啟動(dòng)腳本鏈接到/etc/init.d/目錄中,就能被service命令所管理了。為了照顧大家的習(xí)慣,我把軟鏈接文件命名為apache,注意這不是RPM包默認(rèn)安裝的apache服務(wù)
[root@localhost ~]# service apache restart
#雖然RPM包默認(rèn)安裝的apache服務(wù)被卸載了,但是service命令也能夠生效
4) 讓源碼包安裝的apache服務(wù)能被chkconfig命令管理自啟動(dòng)
[root@localhost ~]# vi /etc/init.d/apache
#修改源碼包安裝的apache服務(wù)的啟動(dòng)腳本(注意此文件是軟鏈接,所以修改的還是源碼包啟動(dòng)腳本)
#!/bin/sh
#
#chkconfig: 35 86 76
#指定httpd腳本可以被chkconfig命令所管理
#格式是:chkconfig:運(yùn)行級(jí)別 啟動(dòng)順序 關(guān)閉順序
#這里我們讓apache服務(wù)在3和5級(jí)別中能被chkconfig命令所管理,啟動(dòng)順序是S86,關(guān)閉順序是K76
#(自定順序,不要和系統(tǒng)中已有的啟動(dòng)順序沖突)
#description: source package apache
#說明,內(nèi)容隨意
#以上兩句話必須加入,才能被chkconfig命令所識(shí)別 ...省略部分輸出...
[root@localhost ~]# chkconfig --add apache
#讓chkconfig命令能夠管理源碼包安裝的apache服務(wù)
[root01ocalhost ~]# chkconfig --list | grep apache
apache 0:關(guān)閉 1:關(guān)閉 2:關(guān)閉 3:關(guān)閉 4:關(guān)閉 5:關(guān)閉 6:關(guān)閉
#很神奇吧,雖然RPM包默認(rèn)安裝的apache服務(wù)被刪除了,但是chkconfig命令可以管理源碼包安裝的tapache服務(wù)
5) 讓ntsysv命令可以管理源碼包安裝的apache服務(wù)
#ntsysv 命令其實(shí)和 chkconfig 命令使用同樣的管理機(jī)制,也就是說,ntsysv 已經(jīng)可以進(jìn)行源碼包安裝 apache 服務(wù)的自啟動(dòng)管理了,如圖 1 所示
圖 1 ntsysv 命令識(shí)別 apache
總結(jié)一下,如果想讓源碼包服務(wù)被service命令所識(shí)別和管理,則只需做一個(gè)軟鏈接把啟動(dòng)腳本鏈接到 /etc/init.d/ 目錄中即可。要想讓源碼包服務(wù)被 chkconfig 命令所是被,除了需要把服務(wù)的啟動(dòng)腳本鏈接到 /etc/init.d/ 目錄中,還要修改這個(gè)啟動(dòng)腳本,在啟動(dòng)腳本的開頭加入如下內(nèi)容:
#chkconfig:運(yùn)行級(jí)別 啟動(dòng)順序 關(guān)閉
#description:說明
然后需要使用"chkconfig--add 服務(wù)名"的方式把服務(wù)加入 chkconfig 命令的管理中。命令格式如下:
[root@localhost ~]# chkconfig [選項(xiàng)][服務(wù)名]
選項(xiàng):
- -add:把服務(wù)加入 chkconfig 命令的管理中;
- -del:把服務(wù)從 chkconfig 命令的管理中刪除;
例如:
[root@localhost ~]# chkconfig -del httpd
#把a(bǔ)pache服務(wù)從chkconfig命令的管理中刪除
新聞名稱:Linux源碼包服務(wù)管理(啟動(dòng)與自啟動(dòng))
標(biāo)題來源:http://www.5511xx.com/article/djhepop.html


咨詢
建站咨詢
