1. 程式人生 > >SUSE開機啟動應用程式

SUSE開機啟動應用程式

搜了好多,也沒個簡單易懂的,關鍵是linux太靈活了

在SuSE中設定開機自動啟動程式

在/etc/init.d/boot.local檔案中新增命令。Red Hat系統的對應檔案是/etc/rc.d/rc.local。
對於Linux系統啟動時自動執行的命令或程式,在rh-based linux 系統,一般常見是放在 /etc/rc.d/rc.local 中。但SuSE Linux 沒有這個檔案,另外也不推薦使用者這樣管理啟動服務。推薦使用正規的方式來管理服務啟動方式。
有人會說,在SuSE系統裡,可以放在 /etc/init.d/boot.local 中,這要看實際情況。因為 SuSE 的 /etc/init.d/boot.local 檔案是由/etc/init.d/boot 這個 script 所啟動的,而且是最後 boot script 工作完成要準備進入 runlevel 環境執行各項 rc script 時所執行。而rh 的 /etc/rc.d/rc.local 檔案是 runlevel 環境執行各項 rc script 時最後一個階段執行的,所以層面不一樣。如果你要執行的程式適合於runlevel 這項服務之前就執行的話,在SuSE linux 中可以放在 boot.local 檔案裡。
但如果你的服務需要是在進入 runlevel 後才執行的話,SuSE 下正規做法應該是自己寫一個 rc script放到 /etc/init.d/ 目錄下,然後使用 chkconfig or inssev 程式來管理配置能夠於某個 runlevel 環境開機時是否要啟用關閉該服務專案。該 rc script 寫法可以自己參考一下 /etc/init.d/ 裡面現成的 script 檔案,應該很容易就寫一個自己的版本

關於開機啟動指令碼配置檔案 SUSE與其它linux設定不一樣,網上查了半天記錄如下

那就是 /etc/init.d 下的幾個檔案

1. boot.local –> 這個開機啟動檔案會在 rc5.d 前就有動作

2. halt.local –> 這個關機啟動檔案會在最後有動作

3. before.local –> 這個檔案比較用不到所以不需多做解釋

4. after.local –> 這個檔案會在 rc5.d 之後有動作 , 就是最重要的開機啟動檔 沒有的話 新建一個

上面第三及第四個檔案預設是不存在的喔!!

當你看過 /etc/init.d/rc 這個檔案就知道為什么了

所以當你要使用第三或第四個檔案時請自己建立, 就像妳寫個

shell 一樣很簡單

例:

vi /etc/init.d/after.local


======================================================================================================================================


1:boot.local
這個是系統啟動完所有的boot.services之後執行的指令碼。詳見檔案註釋
# /etc/rc.d/boot.local
# Here you should add things, that should happen directly after booting


# before we're going to the first run level.
#
2:before.local 和 after.local
這個是由/etc/init.d/rc裡面來控制的,發生在切換執行級別之前和之後。
結論:如果你想進入系統最後執行的一個變數和引數。應該寫入檔案after.local

==============================================================================================================================

suse下自動啟動指令碼

也許你對SUSE Linux很瞭解,也許你不太瞭解,都沒關係,在這裡我們一起互相討論,今天我們討論的是在SUSE Linux Tomcat自動啟動。希望本文能對大家有一些幫助,希望你能學會SUSE Linux Tomcat自動啟動。在/etc/init.d/boot.local檔案中新增命令。Red Hat系統的對應檔案是/etc/rc.d/rc.local。

對於Linux系統啟動時自動執行的命令或程式,在rh-based linux 系統,一般常見是放在 /etc/rc.d/rc.local 中。但SuSE Linux 沒有這個檔案,另外也不推薦使用者這樣管理啟動服務。推薦使用正規的方式來管理服務啟動方式。

有人會說,在SuSE系統裡,可以放在 /etc/init.d/boot.local 中,這要看實際情況。因為 SuSE 的 /etc/init.d/boot.local 檔案是由/etc/init.d/boot 這個 script 所啟動的,而且是最後 boot script 工作完成要準備進入 runlevel 環境執行各項 rc script 時所執行。而rh 的 /etc/rc.d/rc.local 檔案是 runlevel 環境執行各項 rc script 時最後一個階段執行的,所以層面不一樣。如果你要執行的程式適合於runlevel 這項服務之前就執行的話,在SuSE linux 中可以放在 boot.local 檔案裡。

但如果你的服務需要是在進入 runlevel 後才執行的話,SuSE 下正規做法應該是自己寫一個 rc script放到 /etc/init.d/ 目錄下,然後使用 chkconfig or inssev 程式來管理配置能夠於某個 runlevel 環境開機時是否要啟用關閉該服務專案。該 rc script 寫法可以自己參考一下 /etc/init.d/ 裡面現成的 script 檔案,應該很容易就寫一個自己的版本。

一、建立啟動/停止指令碼檔案

通過一下指令碼,可以使Tomcat以Service方式執行。
#!/bin/bash
# chkconfig: 2345 10 90
# description: Starts and Stops the Tomcat daemon.
TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-5.5.25
TOMCAT_START=$TOMCAT_HOME/bin/startup.sh
TOMCAT_STOP=$TOMCAT_HOME/bin/shutdown.sh
# necessary environment variables export
CATALINA_HOME=$TOMCAT_HOME
export JAVA_HOME=/usr/java/jdk1.6.0_03
# source function library.
. /etc/rc.d/init.d/functions
# source networking configuration.
. /etc/rc.d/network
# check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 0
# check for tomcat script
if [ ! -f $TOMCAT_HOME/bin/catalina.sh ]
then echo "Tomcat not valilable..."
exit
fi
start(){
echo -n "Starting Tomcat: "
daemon $TOMCAT_START
echo
touch /var/lock/subsys/tomcat
}
stop(){
echo -n $"Shutting down Tomcat: "
daemon $TOMCAT_STOP
rm -f /var/lock/subsys/tomcat.pid echo
}
restart(){
stop
start
}
status(){
ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap start" | awk '{printf $1 " "}' | wc | awk '{print $2}' > /tmp/tomcat_process_count.txt
read line < /tmp/tomcat_process_count.txt
if [ $line -gt 0 ]; then
echo -n "tomcat ( pid "
ps ax --width=1000 | grep "org.apache.catalina.startup.Bootstrap start" | awk '{printf $1 " "}'
echo -n ") is running..."
echo
else
echo "Tomcat is stopped"
fi
}
case "$1" in
start)
start ;;
stop)
stop ;;
restart)
stop
sleep 3
start ;;
status)
status ;;
*)
echo "Usage: tomcatd {start|stop|restart|status}"
exit 1
esac
exit 0

二、儲存並設定指令碼檔案

將以上的指令碼檔案儲存在/etc/init.d中,命名為tomcat;
設定tomcat的檔案屬性
#chmod a+x tomcat

三、設定服務執行級別
最後用chkconfig設定服務執行
#chkconfig --add tomcat

服務就新增成功了。

然後你就可以用 chkconfig --list 檢視,在服務列表裡就會出現自定義的服務了。

注意:
在tomcat檔案的頭兩行的註釋語句中,需要包含chkconfig和description兩部分內容(確認不要拼寫錯誤,),否則在執行“chkconfig --add tomcat”時,會出現“tomcat服務不支援chkconfig”的錯誤提示。

chkconfig這行表示預設啟動的執行級別以及啟動和停止的優先順序,如該服務預設不再任何執行級啟動,則以 - 代替執行級別。在tomcat中表示指令碼在執行級2、3、4、5啟動,啟動優先權為10,停止優先權為90。

description行對服務進行描述,可以用 “\” 跨行註釋。 這樣你就學會了SUSE Linux Tomcat自動啟動過程