linux resin 自动启动不了,Resin 安装-配置-自启动-Linux
Resin
安裝-配置-自啟動-Linux 2005-4-8 15:33:00
將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等環境變量在系統初始化過程中是讀不到的。通過一些資料:
了解到將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資源。因此在一些比較慢的機器上或者按照以上的配置有時候會很奇怪的啟動不起來,在stderr.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
問題解決過程和思路:
先檢查resin的日志:stderr.log,里面有can't connect to
parent,然后在google上查"resin2 can't connect to
parent"和"resin can't connect to
parent",大約有幾篇郵件列表歸檔吧,在一篇郵件列表歸檔中有技術支持說正在調整服務等待時間解決類似問題(需要改SOURCE),另外一個人說他的P4服務器啟動時需要啟動很多消耗CPU的服務,也會導致RESIN啟動不了,然后我在自己的機器上嘗試了一下,在RESIN啟動前就登錄到機器上,發現啟動時RESIN和PERL腳本其實都運行了,但過了一會兒相應進程就退出了,在啟動后系統比較平穩了,再啟動RESIN,RESIN服務就是好的,說明說明腳本本身沒有問題,按我以前的經驗,JAVA應用是一個比較吃CPU資源的類型,為了讓RESIN有足夠的CPU資源的啟動,在啟動后我增加了15秒的延遲,以防止后續服務影響RESIN的啟動。問題就解決了,而且在其他機器上試也成功了。
當然,最好還是CAUCHO解決了這個問題大家就都不用學這些小技巧了。因此我將類似中所有的BUG報告中提交了自己的解決方案,要求在init.resin腳本中增加一個全局變量,允許用戶設置啟動時的等待時間。并把這個解決思路追加到文檔中,讓大家能夠用自己的行動積極支持開源軟件。
利用Resin內置的日志輪循,HTTP壓縮,緩存和簡單HTTP認證
作為應用服務器,很多功能都不用自己再開發了:建議把這些和應用服務器相關的配置放在resin.conf里,而和應用服務器無關的Web應用的標準配置放在WEB-INF/web.xml中。
總結
以上是生活随笔為你收集整理的linux resin 自动启动不了,Resin 安装-配置-自启动-Linux的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在linux中运行多文件,在Linux中
- 下一篇: 回补缺口的意义