我想弄一个能够在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没有正确的加载环境变量,这个需要以后的学习过程中慢慢积累。