歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux服務 >> 通過修改Linux服務自動啟動指定應用程序

通過修改Linux服務自動啟動指定應用程序

日期:2017/3/1 16:17:31   编辑:Linux服務
通過修改Linux服務自動啟動指定應用程序 Linux中修改系統服務的命令是chkconfig (check config),命令的詳細解釋如下: chkconfig 功能說明:檢查,設置系統的各種服務。 語  法:chkconfig [--add][--del][--list][系統服務] 或 chkconfig [--level <等級代號>][系統服務][on/off/reset] 補充說明:這是Red Hat公司遵循GPL規則所開發的程序,它可查詢操作系統在每一個執行等級中會執行哪些系統服務,其中包括各類常駐服務。 參  數:  --add  增加所指定的系統服務,讓chkconfig指令得以管理它,並同時在系統啟動的敘述文件內增加相關數據。  --del  刪除所指定的系統服務,不再由chkconfig指令管理,並同時在系統啟動的敘述文件內刪除相關數據。  --level<等級代號>  指定讀系統服務要在哪一個執行等級中開啟或關畢 首先來執行 chkconfig --list命令來查看所有已添加的系統服務(下面的結果只是一部分) [root@fd init.d]# chkconfig --list diskdump 0:off 1:off 2:off 3:off 4:off 5:off 6:off xfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off rhnsd 0:off 1:off 2:off 3:on 4:on 5:on 6:off cups-config-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off nfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off microcode_ctl 0:off 1:off 2:on 3:on 4:on 5:on 6:off netplugd 0:off 1:off 2:off 3:off 4:off 5:off 6:off netdump 0:off 1:off 2:off 3:off 4:off 5:off 6:off cpuspeed 0:off 1:on 2:on 3:on 4:on 5:on 6:off syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off rawdevices 0:off 1:off 2:off 3:on 4:on 5:on 6:off psacct 0:off 1:off 2:off 3:off 4:off 5:off 6:off vncserver 0:off 1:off 2:off 3:off 4:off 5:off 6:off saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off dc_server 0:off 1:off 2:off 3:off 4:off 5:off 6:off mdmonitor 0:off 1:off 2:on 3:on 4:on 5:on 6:off httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off ibmasm 0:off 1:off 2:off 3:off 4:off 5:off 6:off dc_client 0:off 1:off 2:off 3:off 4:off 5:off 6:off 其中第一列表示服務名,後面的0-6表示在這六種啟動方式中該服務是啟動(on)還是關閉(off) 比如默認情況下,自動檢測新硬件的服務是啟動的(服務名是kudzu),每次啟動需要檢測一段時間,我們可以關閉服務,以後有了硬件改動在調用它。 chkconfig kudzu off chkconfig --list kudzu kudzu 0:off 1:off 2:off 3:off 4:off 5:off 6:off 可以看到檢測新硬件的服務都被關閉了,再次啟動時就不會檢測新硬件了。如果有了硬件改動你可以選擇將此服務打開(chkconfig kudzu on),其實有更簡單的方法,輸入 service kudzu start 手動啟動檢測新硬件服務就可以了。這些服務都存放在/etc/init.d目錄下,他們都是可執行的shell文件,比如剛才用的檢測新硬件服務 [root@fd /]# ls -l /etc/init.d/kudzu -rwxr-xr-x 1 root root 2095 Aug 23 2005 /etc/init.d/kudzu 其實我們編寫的shell文件也可以放在這裡,然後添加成系統服務,但是我們必須遵守一個簡單的預定。我們先來看看kudzu的具體內容吧 根據這個模式編寫一個簡單的啟動tomcat的服務腳本,vi /etc/init.d/tomcat,內容如下 [root@fd /]# cat /etc/init.d/kudzu #!/bin/bash # # kudzu This scripts runs the kudzu hardware probe. # # chkconfig: 345 05 95 # description: This runs the hardware probe, and optionally configures \ # changed hardware. # This is an interactive program, we need the current locale 具體內容省略 # chkconfig: 2345 20 80 # description: simple example to start tomcat export JAVA_HOME=/usr/java/jdk1.5.0_16 export CLASS_PATH=/usr/java/jdk1.5.0_16/lib export PATH=$JAVA_HOME/bin:$PATH /usr/Tomcat/bin/startup.sh 將tomcat添加到服務中 chkconfig --add tomcat 狀態設為啟動 chkconfig tomcat on 在tomcat文件的頭幾行的注釋語句中,必須包含chkconfig和description兩部分內容,否則在執行“chkconfig --add tomcat”時,會出現“tomcat服務不支持chkconfig”的錯誤提示。chkconfig這行表示缺省啟動的運行級別以及啟動和停止的優先級,如該服務缺省不再任何運行級啟動,則以 - 代替運行級別。在tomcat中表示腳本在運行級2、3、4、5啟動,啟動優先權為20(優先權數越大服務啟動的越晚),停止優先權為80。如果服務已經設置好了,那麼通過編輯tomcat文件來修改啟動優先權就不管用了,先刪除服務再添加進來就可以了。 我模仿檢測新硬件服務的內容編寫一個較為復雜的tomcat服務,在系統啟動時啟動tomcat,在系統關閉時關閉tomcat。內容如下 # chkconfig: 2345 30 70 # description: Starts and Stops Tomcat. export JAVA_HOME=/usr/java/jdk1.5.0_16 export CLASS_PATH=/usr/java/jdk1.5.0_16/lib export PATH=$JAVA_HOME/bin:$PATH case "$1" in start) /usr/Tomcat/bin/startup.sh touch /var/lock/subsys/tomcat ;; status) if [ -f /var/lock/subsys/tomcat ]; then echo $"tomcat is running" exit 0 fi echo $"tomcat has stopped" exit 3 ;; stop) /usr/Tomcat/bin/shutdown.sh rm -f /var/lock/subsys/tomcat ;; restart) /usr/Tomcat/bin/shutdown.sh /usr/Tomcat/bin/startup.sh ;; *) echo "Usage: tomcat {start|stop|restart|status}" exit 1 esac exit 0
Copyright © Linux教程網 All Rights Reserved