位置:海鸟网 > IT > linux/Unix >

剖析SUSE Linux Tomcat自动启动

也许你对SUSE Linux很了解,也许你不太了解,都没关系,在这里我们一起互相讨论,今天我们讨论的是在SUSE Linux Tomcat自动启动。希望本文能对大家有一些帮助,希望你能学会SUSE Linux Tomcat自动启动。在/etc/init.d/boot.local文件中添加命令。Red Hat系统的对应文件是/etc/rc.d/rc.local。

  对于Linux系统启动时自动运行的命令或程序,在rh-based linux 系统,一般常见是放在 /etc/rc.d/rc.local 中。但SuSE Linux 没有这个文件,另外也不推荐使用者这样管理启动服务。推荐使用正规的方式来管理服务启动方式。

  有人会说,在SuSE系统里,可以放在 /etc/init.d/boot.local 中,这要看实际情况。因为 SuSE 的 /etc/init.d/boot.local 文件是由/etc/init.d/boot 这个 script 所启动的,而且是最后 boot script 工作完成要准备进入 runlevel 环境执行各项 rc script 时所执行。而rh 的 /etc/rc.d/rc.local 档案是 runlevel 环境执行各项 rc script 时最后一个阶段执行的,所以层面不一样。如果你要运行的程序适合于runlevel 这项服务之前就执行的话,在SuSE linux 中可以放在 boot.local 文件里。

  但如果你的服务需要是在进入 runlevel 后才执行的话,SuSE 下正规做法应该是自己写一个 rc script放到 /etc/init.d/ 目录下,然后使用 chkconfig or inssev 程序来管理配置能够于某个 runlevel 环境开机时是否要启用关闭该服务项目。该 rc script 写法可以自己参考一下 /etc/init.d/ 里面现成的 script 档案,应该很容易就写一个自己的版本。

  一、创建启动/停止脚本文件

  通过一下脚本,可以使Tomcat以Service方式运行。

  #!/bin/bash

  # chkconfig: 2345 10 90

  # description: Starts and Stops the Tomcat daemon.

  TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-5.5.25

  TOMCAT_START=$TOMCAT_HOME/bin/startup.sh

  TOMCAT_STOP=$TOMCAT_HOME/bin/shutdown.sh

  # necessary environment variables export

  CATALINA_HOME=$TOMCAT_HOME

  export JAVA_HOME=/usr/java/jdk1.6.0_03

  # source function library.

  . /etc/rc.d/init.d/functions

  # source networking configuration.

  . /etc/rc.d/network

  # check that networking is up.

  [ "${NETWORKING}" = "no" ] && exit 0

  # check for tomcat script

  if [ ! -f $TOMCAT_HOME/bin/catalina.sh ]

  then echo "Tomcat not valilable..."

  exit

  fi

  start(){

  echo -n "Starting Tomcat: "

  daemon $TOMCAT_START

  echo

  touch /var/lock/subsys/tomcat

  }

  stop(){

  echo -n $"Shutting down Tomcat: "

  daemon $TOMCAT_STOP

  rm -f /var/lock/subsys/tomcat.pid echo

  }

  restart(){

  stop

  start

  }

  status(){

  ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap start" | awk '{printf {GetProperty(Content)} " "}' | wc | awk '{print $2}' > /tmp/tomcat_process_count.txt

  read line < /tmp/tomcat_process_count.txt

  if [ $line -gt 0 ]; then

  echo -n "tomcat ( pid "

  ps ax --width=1000 | grep "org.apache.catalina.startup.Bootstrap start" | awk '{printf {GetProperty(Content)} " "}'

  echo -n ") is running..."

  echo

  else

  echo "Tomcat is stopped"

  fi

  }

  case "{GetProperty(Content)}" in

  start)

  start ;;

  stop)

  stop ;;

  restart)

  stop

  sleep 3

  start ;;

  status)

  status ;;

  *)

  echo "Usage: tomcatd {start|stop|restart|status}"

  exit 1

  esac

  exit 0

  二、保存并设置脚本文件

  将以上的脚本文件保存在/etc/init.d中,命名为tomcat;

  设置tomcat的文件属性

  #chmod a+x tomcat

  三、设置服务运行级别

  最后用chkconfig设置服务运行

  #chkconfig --add tomcat

  服务就添加成功了。

  然后你就可以用 chkconfig --list 查看,在服务列表里就会出现自定义的服务了。

  注意:

  在tomcat文件的头两行的注释语句中,需要包含chkconfig和description两部分内容(确认不要拼写错误,),否则在执行“chkconfig --add tomcat”时,会出现“tomcat服务不支持chkconfig”的错误提示。

  chkconfig这行表示缺省启动的运行级别以及启动和停止的优先级,如该服务缺省不再任何运行级启动,则以 - 代替运行级别。在tomcat中表示脚本在运行级2、3、4、5启动,启动优先权为10,停止优先权为90。

  description行对服务进行描述,可以用 “” 跨行注释。 这样你就学会了SUSE Linux Tomcat自动启动过程