Tomcat开机自启
- 参考network编写
- 编写shell
- 赋予权限
- 链接系统文件达到开机执行shell的目的
- 增加所指定的tomcat系统服务
- 测试结果
- service tomcat start
- reboot测试
参考network编写
在目录/etc/init.d参考network文件
发现就是多个命令行执行,分条件执行
思路:
在shell脚本中根据条件执行tomcat/bin目录下的startup.sh或则shutdown.sh,最后让系统开机的时候能执行这个shell脚本,达到开机自启的目的。
编写shell
根据java与tomcat的路径配置环境变量
这里是我的虚拟机中java和tomcat路径
JAVA_HOME=/usr/local/java/jdk1.8.0_151
CATALINA_HOME=/usr/local/tomcat
#!/bin/sh
# chkconfig: 345 99 10
# description: Auto-starts tomcat
# /etc/init.d/tomcatd
# Tomcat auto-start
# Source function library.
#. /etc/init.d/functions
# source networking configuration.
#. /etc/sysconfig/network
RETVAL=0
export JAVA_HOME=/usr/local/java/jdk1.8.0_151
export JRE_HOME=$JAVA_HOME/jre
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat
start()
{
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
$CATALINA_HOME/bin/startup.sh
RETVAL=$?
echo " OK"
return $RETVAL
fi
}
stop()
{
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
$CATALINA_HOME/bin/shutdown.sh
RETVAL=$?
sleep 1
ps -fwwu root | grep tomcat|grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9
echo " OK"
# [ $RETVAL -eq 0 ] && rm -f /var/lock/...
return $RETVAL
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
echo $"Restaring Tomcat"
$0 stop
sleep 1
$0 start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL
赋予权限
读写执行权限
# chmod +x tomcat
链接系统文件达到开机执行shell的目的
查看目录/etc/rc2.d/
类似与windows中的注册表,在系统启动的时候某些指定脚本将被执行。
前缀S16代表执行的优先级
# ln -s /etc/init.d/tomcat /etc/rc2.d/S16Tomcat
增加所指定的tomcat系统服务
# chkconfig --add tomcat
添加成功后查看
测试结果
service tomcat start
启动成功
reboot测试
重启中
tomcat已自动重启