荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: windmoon.bbs@bbs.zju.edu.cn (风神月影), 信区: Linux
标  题: RESIN在GNU/Linux上的服务自动启动
发信站: 浙江大学海纳百川 (Sat Jan 11 09:19:55 2003)
转信站: SZU!news.tiaozhan.com!news.zixia.net!news.happynet.org!ZJUBBS

作者: 车东 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-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权限,而且随服务器自启动就不能使用h
ttpd.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



--
※ 来源:·浙江大学海纳百川站 bbs.zju.edu.cn·[FROM: windmoon]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店