作者: 車東
[email protected] 最後更新:2003-01-03 09:51:35 版權聲明:可以任意轉載,轉載時請務必標明原始出處和作者信息 內容摘要: 將resin-version/contrib/init.resin.in復制到/etc/rc.d/init.d/resin 修改resin中的一些設置:JAVA_HOME RESIN_HOM
作者: 車東
[email protected] 最後更新:2003-01-03 09:51:35
版權聲明:可以任意轉載,轉載時請務必標明原始出處和作者信息
內容摘要:
將resin-version/contrib/init.resin.in復制到/etc/rc.d/init.d/resin
修改resin中的一些設置:JAVA_HOME RESIN_HOME USER 等
用/sbin/chkconfig resin on將RESIN服務在啟動級別345設置成自啟動 。
在慢速CPU的機器上啟動時,需要加入一個15秒的延時幫助JAVA啟動
我最習慣的設置服務自動啟動的方式是在rc.local裡加類似一下的腳本:
#sshd
/usr/local/sbin/sshd
#proftpd
/usr/local/sbin/proftpd
#apache
/home/apache/bin/apachectl start
#
mysql /home/mysql/bin/safe_mysqld --port=3306 &
#start oracle8i listener first
su - oracle -c 'lsnrctl start'
#start oracle8i
su - oracle -c 'dbstart'
但配置RESIN的自動啟動的時候確遇到了不少麻煩,主要是JAVA_HOME等環境變量在系統初始化過程中是讀不到的。通過一些資料 http://www.caucho.com/support/resin.../0112/0151.html 了解到將RESIN配置成一個可配置的服務需要以下幾個步驟:
設置好JAVA_HOME環境變量後將RESIN解包到/home/resin下,執行編譯腳本
tar zxf resin-version.tar.gz
mv resin-version /home/resin
cd /home/resin/
./configure
make
make install
將make install生成的$RESIN_HOME/contrib/init.resin復制到/etc/rc.d/init.d/resin,並且
chmod +x resin
cp contrib/init.resin /etc/rc.d/init.d/resin
chmod +x /etc/rc.d/init.d/resin
修改resin中的一些設置:JAVA_HOME RESIN_HOME USER等,
將resin服務在不同的啟動級中設置成自啟動:
#/sbin/chkconfig resin reset
從中還學到了不少關於用chkconfig管理服務啟動的
知識。其實/etc/init.d/resin這個腳本之所以可以用chkconfig來配置主要是有以下的注釋:
# chkconfig: 345 85 15
# description: Resin is a Java Web server.
這個注釋表示resin服務在運行級別345下自動啟動(/etc/rc.d/下 rc3.d rc4.d rc5.d都用相應鏈接到init.d/resin),啟動的優先級是85,停止的優先級是15。這樣就能自動在相應的rc#.d/生成 S##resin和K##resin了。原先感覺GNU/
Linux下的rc.d/下的文件很亂,不如FREEBSD的簡潔。有了CHKCONFIG還是讓我對下面的文件管理簡化了很多。用/sbin/chkconfig resin on將RESIN服務設置成自啟動服務後,在GNU/Linux的setup界面的system services設置中也可以對RESIN服務進行設置了。
如果讓RESIN作為80端口的服務需要用ROOT權限,而且隨
服務器自啟動就不能使用httpd.sh了,而需要一個可執行文件來實現,這個可執行在./configure ; make; make install後,這個可執行文件會生成在$RESIN_HOME/bin/下,resin文件實際是一個執行wrapper.pl的轉向。
在慢速機器上的RESIN啟動:
RESIN是一個JAVA應用,啟動過程中需要消耗大量的CPU資源。因此在一些比較慢的機器上或者按照以上的配置有時候會很奇怪的啟動不起來,在s
tderr.log中顯示:"can't connect to parent",這個問題可以通過在服務啟動後加上一個15秒的延時解決:
在/etc/init.d/resin: 43行左右:
if test -n "$USER"; then
su - $USER -c "$EXE -pid $PID start $ARGS"
else
$EXE -pid $PID start $ARGS
fi
#服務啟動後,加上一個15秒的延時解決
sleep 15
這個問題我已經作為一個BUG提交給了CAUCHO.COM
參考資料:
RESIN的安裝: http://www.caucho.com/download/install.pdf
用紅帽子的chkconfig管理Init腳本 http://www.cioworld.net/linux/069.htm