SUSE 开机自启动java程序

阅读更多

我想弄一个能够在SUSE系统中开机自启动我们公司的程序的脚本。找了很多,目前已经能够开机自启动。但是这个程序在实际使用中是否存在问题,还没有经过测试。

下面是经过

使用的是 chkconfig service_name on 的方法。

第一步:生成一个service_name(服务是什么名字就起什么名字)脚本,在目录/etc/rc.d/下。脚本内容如下:

#!/bin/sh
#runserver.sh
#-------------------------------------------------------------------
# 在SUSE 系统下自启动XXX服务。主要想用于商户

# 没有考虑启动服务需要的前提条件和停止服务的条件。
#-------------------------------------------------------------------
### BEGIN INIT INFO
# Provides: MisServer
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Start the MisServer Damon
### END INIT INFO


CURRENT_DIR=/opt/misserver
MISSERVER_HOME=$CURRENT_DIR
JAVA_HOME=/opt/jdk1.5.0_06
JAVA_OPTS="-Dcom.peakvision.pvds.home=$MISSERVER_HOME"
JAVA_OPTSLOG4J="-Dlog4j.configuration=log4j.properties"
#MisServer服务
MIS_LOG4J="-Dlog4j.configuration=log4jMisServer.properties"
_RUNJAVA="$JAVA_HOME"/bin/java

if [ -z "$CLASSPATH" ]; then
 CLASSPATH="$MISSERVER_HOME"/plugin:"$MISSERVER_HOME"/conf
else
 CLASSPATH="$CLASSPATH":"$MISSERVER_HOME"/plugin:"$MISSERVER_HOME"/conf
fi
for i in "$MISSERVER_HOME"/lib/*.jar; do
 CLASSPATH="$CLASSPATH":"$i"
done


case "$1" in
 "start"  ) 
  echo '启动MisServer.'
  "$_RUNJAVA" "$JAVA_OPTS" "$MIS_LOG4J" -classpath "$CLASSPATH" -Xms32m -Xmx256m com.peakvision.pvds.server.misserver.MisServer &
 ;;
  
 "stop"  )
  echo '关闭MisServer.'
  "$_RUNJAVA" "$JAVA_OPTS" "$MIS_LOG4J" -classpath "$CLASSPATH" -Xms32m -Xmx256m com.peakvision.pvds.server.misserver.ShutdownMisServer &
 ;;
    
 * )
  exit 1 ;;
esac

 

第二步:

chkconfig service_name on

这样就能将这个java程序作为一个服务在系统中注册使用了。用命令:

chkconfig  --list serivce_name

可以查看这个服务在哪个RUNLEVEL下启动。

-----------------------------------------------------------------完成------------------------------------------------------------

如果想测试一下,可以用这个命令,在不重启的情况看能否启动这个程序。

service service_name start

------------------------------------------可能存在的问题---------------------------------------------------------------------

1.在开机后,用命令 ps -ef|grep service_name查询服务进程信息,会比正常启动多出这一行内容:

root      2080     1  0 23:21 ?        00:00:00 startpar -f -- service_name

 

------------------------------------------补充-----------------------------------------------------------------------------------

1._RUNJAVA的最好配制成java的全路径,否则可能会在使用中出现错误,出现错误的原因可能是crontab没有正确的加载环境变量,这个需要以后的学习过程中慢慢积累。

你可能感兴趣的:(SUSE,开机自启动,服务,java程序)