• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

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

发布: 2007-7-04 12:06 | 作者: admin | 来源:  网友评论 | 查看: 19次 | 进入软件测试论坛讨论

领测软件测试网 作者: 车东 chedong@bigfoot.com

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


  
  这个问题我已经作为一个BUG提交给了CAUCHO.COM

  参考资料:

  RESIN的安装: http://www.caucho.com/download/install.pdf

  用红帽子的chkconfig管理Init脚本 http://www.cioworld.net/linux/069.htm

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网