免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8610 | 回复: 9
打印 上一主题 下一主题

Tomcat 自启动脚本,为何服务起不来?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-18 16:49 |只看该作者 |倒序浏览
请教一下: 我写了了个启动tomcat的脚本(代码如下),直接运行(./tomcat start)能起来, 通过service tomcat start 能够正常运行不报错,但是服务没起来。 通过在tomcat 脚本里面设置 set -x 跟踪看了,也没什么异样!把脚本放到/etc/rc.d/init.d/下用chkconfig --add tomcat 也加不了!

代码如下:

#!/bin/bash
#
# /etc/rc.d/init.d/tomcat
#
# Starts the tomcat daemon
#
# chkconfig: 2345 80 20
#
# decription: Tomcat is a Java Servlet Container
#
# processname: java
#
# Source function library.

. /etc/init.d/functions

# pull in sysconfig settings
[ -f /etc/sysconfig/tomcat ] && . /etc/sysconfig/tomcat

#set -x


RETVAL=0
CATALINA_HOME=/usr/local/tomcat

q_status(){
   if [ "$(pgrep java)" == "" ]
   then
       RETVAL=0
   else
       RETVAL=1
   fi
   return $RETVAL
}


start(){
   q_status
   if [ $RETVAL -eq 0 ]
   then
      echo  "Starting tomcat ..."
      echo
      $CATALINA_HOME/bin/startup.sh
      echo  
   else
      echo  "Tomcat is already running..."
   fi

}

stop(){
   q_status
   if [ $RETVAL -eq 1 ]
   then
      echo  "Stoping tomcat ..."
      echo
      $CATALINA_HOME/bin/shutdown.sh
      echo  
   else
      echo "Tomcat is already stoped..."
   fi
   
}


restart(){
   stop
   sleep 2
   start
}

status(){
   q_status
   if [ $RETVAL -eq 0 ]
   then
      echo "Tomcat is not running..."
   else
      echo "Tomcat is running..."
   fi
}



case "$1" in

start)
        start
        ;;
stop)
        stop
        ;;
restart)
        restart
        ;;
status)
        status
        ;;
*)
        echo $"Usage: $0 {start|stop|restart|status}"
        exit 1
esac

exit $?

论坛徽章:
1
2015年亚洲杯之沙特阿拉伯
日期:2015-04-10 13:59:00
2 [报告]
发表于 2011-07-19 11:23 |只看该作者
有log没?

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
3 [报告]
发表于 2011-07-19 11:27 |只看该作者
检查下日志.
估计楼主的java环境变量没有设置好,添加到你的服务脚本里面看看

论坛徽章:
0
4 [报告]
发表于 2011-07-19 15:24 |只看该作者
学习一下/

论坛徽章:
0
5 [报告]
发表于 2011-07-19 15:40 |只看该作者
回复 1# xxm1988


手动启动下,看看能不能起来..

论坛徽章:
1
天秤座
日期:2013-10-23 13:20:42
6 [报告]
发表于 2011-07-19 15:44 |只看该作者
你没有按照 /etc/init.d/中脚本的标准格式来写吧。

论坛徽章:
0
7 [报告]
发表于 2011-07-20 13:10 |只看该作者
[root@xxm-web ~]# env | grep  -i -E  "JAVA_HOME|CLASSPATH"
JAVA_HOME=/usr/java/jdk
CLASSPATH=.:/usr/java/jdk/lib/tools.jar:/usr/java/jdk/lib/dt.jar

环境变量是设好了啊!

论坛徽章:
0
8 [报告]
发表于 2011-07-20 13:13 |只看该作者
我直接运行脚本可以起来的啊!!  service 难道不就是直接调用这个脚本吗??   况且我在脚本里面设置 set -x ,  用service tomcat start, 能够清楚的看到脚本执行了, 跟直接运行脚本执行时显示的是一样的, 但是出鬼的是前者服务没起来啊!

论坛徽章:
0
9 [报告]
发表于 2011-07-20 13:17 |只看该作者
Log里面好像是报错的:


WARNING: error instantiating 'org.apache.juli.ClassLoaderLogManager' referenced by java.util.logging.manager, class not found
java.lang.ClassNotFoundException: org.apache.juli.ClassLoaderLogManager not found
   <<No stacktrace available>>
WARNING: error instantiating '1catalina.org.apache.juli.FileHandler,' referenced by handlers, class not found
java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler,
   <<No stacktrace available>>
Exception during runtime initialization
java.lang.ExceptionInInitializerError
   <<No stacktrace available>>
Caused by: java.lang.NullPointerException
   <<No stacktrace available>>

论坛徽章:
0
10 [报告]
发表于 2011-07-20 13:25 |只看该作者
问题解决了, 果然是环境变量的问题,我把JAVA的环境变量

CATALINA_HOME=/usr/local/tomcat
JAVA_HOME=/usr/java/jdk
CLASSPATH=.JAVA_HOME/lib/tools.jarJAVA_HOME/lib/dt.jar
PATH=$PATHHOME/binJAVA_HOME/binJAVA_HOME/jre/bin
export  CATALINA JAVA_HOME CLASSPATH PATH

写在脚本里面就可以了!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP