参考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已自动重启