Resin安装,配置和在Linux上的自动启动问题

原创 2004年09月15日 10:22:00

我最习惯的设置服务自动启动的方式是在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配置成一个可配置的服务需要以下几个步骤:

  1. 设置好JAVA_HOME环境变量后将RESIN解包到/home/resin下,执行编译脚本
    %tar zxf resin-version.tar.gz
    #mv resin-version /home/resin
    %cd /home/resin/
    %./configure
    %make
    #make install
  2. 将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
  3. 修改resin中的一些设置:JAVA_HOME RESIN_HOME USER等,
  4. 将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中。

  <host id='example.chedong.com'>
    <access-log id='logs/example_access.log'>
      <!--rotate log daily-->
      <rollover-period>1D</rollover-period>
    </access-log>

    <error-log id='logs/example_error.log'>
      <rollover-period>1M</rollover-period>
    </error-log>

    <web-app id='/' app-dir='/www/myapp/'>
      <classpath id='WEB-INF/classes' source='WEB-INF/src' compile='true'/>

      <!--http compress-->
      <filter-mapping url-pattern='/result'
                  filter-name='com.caucho.http.filter.GzipFilter'/>

      <!--admin need authorization-->
      <login-config auth-method='basic'>
        <authenticator>
          <class-name>com.caucho.http.security.XmlAuthenticator</class-name>
          <init-param user='myname:password:user'/>
        </authenticator>
      </login-config>
      <security-constraint url-pattern='/admin' role-name='user'/>
    </web-app>
  </host>

更多主题:
http://www.caucho.com/resin/ref/topics.xtp

参考资料:

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

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

 

原文出处:<a href="http://www.chedong.com/tech/resin.html">http://www.chedong.com/tech/resin.html</a>

Linux Resin4.0 安装配置

Resin,是一个非常流行的application server,对servlet和JSP提供了良好的支持,性能优良,resin自身采用Java语言开发。Resin Pro版本支持缓存和负载均衡,收费...
  • qing419925094
  • qing419925094
  • 2014年08月26日 16:53
  • 2176

Linux Resin 安装配置

Resin,是一个非常流行的application server,对servlet和JSP提供了良好的支持,性能优良,resin自身采用Java语言开发。Resin Pro版本支持缓存和负载均衡,收费...
  • yanping_ren
  • yanping_ren
  • 2014年01月02日 17:56
  • 1128

linux 安装 resin 介绍

今天在linux 部署了resin,把 安装的步骤记录一下以便以后温习。 (1)检查机器上是否安装JDK。 输入命令:java -version [root@cdn bin]# java -ve...
  • h70614959
  • h70614959
  • 2013年05月28日 11:31
  • 8359

Windows下Resin的安装及配置详解

Resin Resin是CAUCHO公司的产品,是一个非常流行的application server,对servlet和JSP提供了良好的支持,性能也比较优良,resin自身采用JAVA语言开发...
  • flash520
  • flash520
  • 2015年02月11日 17:04
  • 282

阿里云Ubuntu安装resin

1、用到resin需要安装jdk,记住是jdk,不是jre,不然运行resin会报错的。安装jdk和resin先后次序没有规定。 安装jdk请看http://blog.csdn.net/u01452...
  • u014520797
  • u014520797
  • 2016年11月29日 20:04
  • 469

Linux 环境下查看resin版本

resin安装目录为/home/resin/则可以按以下命令执行:   ? 1 2 cd /home/resin/lib jav...
  • JIESA
  • JIESA
  • 2016年04月06日 14:03
  • 2563

resin 4.x 在MyEclipse配置

服务器:resin-pro-4.0.39 开发工具:MyEclipse 10 把下载的resin-pro-4.0.39.zip解压。然后放在英文目录下 找到resin下的conf/resin.x...
  • VVanity
  • VVanity
  • 2015年11月23日 15:31
  • 672

Windows下安装Resin及配置详解与发布应用

关于Resin的好处,网上介绍了一大堆,小编经不住诱惑,决定试用一下。目前Resin的最新版本为:4.0.40,可以从官网直接下载。     1. 将下载下来的Resin包解压开,会看到一大...
  • shehun1
  • shehun1
  • 2014年07月27日 22:23
  • 14551

Resin 中 jvm 内存设置

 unix> bin/httpd.sh -Xmn100M -Xms500M -Xmx500Mwin>   bin/httpd.exe -Xmn100M -Xms500M -Xmx500Minsta...
  • li_guang
  • li_guang
  • 2008年12月30日 09:53
  • 6583

ubuntu下安装配置resin服务器

配置resin resin的配置文件是resin.xml在/etc/resin/目录下面 sudo gedit  /etc/resin/resin.xml 找到         //这里是更改...
  • zhaixinlong
  • zhaixinlong
  • 2014年08月10日 23:04
  • 1359
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Resin安装,配置和在Linux上的自动启动问题
举报原因:
原因补充:

(最多只允许输入30个字)