· [Java论坛][安全论坛][数据库论坛][操作系统论坛]
· [专题] IBM Rational高峰论坛 Windows 7十大功能
· [专题] 史上就危险7月 微软 BizSpark 计划介绍
· [IT技术周刊][IT资源下载专区][病毒求助专区]
· [热点] 我也能做CTO_赛迪连载 赛迪七夕特别行动
· [热点] Chrome 4.0采用V8引擎 Java开发编程规范

Resin在GNU/Linux上的服务自动启动

发布时间:2007.01.11 04:53     来源:www.chedong.com    作者:车东




内容摘要:

将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-interest/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资源。因此在一些比较慢的机器上或者按照以上的配置有时候会很奇怪的启动不起来,在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的安装:

http://www.caucho.com/download/install.pdf

用红帽子的chkconfig管理Init脚本

http://www.cioworld.net/linux/069.htm

(T004)

  


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· GNU/Linux开发者需要从桌面突破 (12-08) · Debian GNU/Linux的完全安装手册详解 (09-04)
· 应用服务器-Resin服务器平台介绍 (07-31) · 应用服务器-关于Resin服务器的使用 (06-26)
· 访谈:GNU/Linux、Connectiva、Academia (06-28) · GNU/Linux开发第一步 (03-22)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
资讯 通信 IT产品 IT技术 信息化
专题:扭亏为盈 联想09年Q2翻番
·专题:Tech·Ed 2009微..
·直播:2009互联网大会..
·迅雷搜狐"互搏" 谁动了..
专题:诺基亚危局已现 或重蹈摩托覆辙
·六股势力角逐4G标准 中..
·专题:联通iPhone并不贵..
·专题:排排坐开商店 三..
商务演示需求分析 多媒体会议室必备投影
·VMware在京隆重举行2009..
·专题:笔记本频道10月热..
·专题:学生机市场 惠普 ..
专题:Tech.Ed 2009微软技术大会
·专题:2009 SYBASE 亚太..
·专题:微软新一代桌面操..
·专题:2009年第3届CSDN..