1.shell脚本启动
众所周知,在Linux中设置开机自启动的服务,需要在/etc/rcX.d下挂载。除此之外还需要在/etc/init.d下些启动脚本。其实很简单,先export出所需要的环境变量,例如JAVA_HOME,JRE_HOME, CATALINA_HOME, CATALINA_BASE什么的,然后再直接调用$CATALINA_HOME/bin/startup.sh就能成功启动。
第一步:我们在/etc/init.d下新建一个文件tomcat(需要在root权限下操作)
vi /etc/init.d/tomcat8090
第二步:编辑文件并退出:wq
#!/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
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export JRE_HOME=/usr/local/java/jdk1.8.0_201/jre
export CATALINA_HOME=/usr/local/userC/tomcat/8090/apache-tomcat-7.0.92
export CATALINA_BASE=/usr/local/userC/tomcat/8090/apache-tomcat-7.0.92
case "$1" in
start)
${CATALINA_HOME}/bin/startup.sh
exit 0
;;
stop)
${CATALINA_HOME}/bin/shutdown.sh
exit 0
;;
debug)
${CATALINA_HOME}/bin/shutdown.sh
${CATALINA_HOME}/bin/catalina.sh run
exit 0
;;
force-reload|restart)
${CATALINA_HOME}/bin/startup.sh
${CATALINA_HOME}/bin/shutdown.sh
exit 0
;;
*)
echo "Usage: /etc/init.d/tomcat {start|stop|restart|force-reload|debug}"
exit 1
;;
esac
exit 0
第三步:
service tomcat8090 start
此时会出现该错误:tomcat8090: unrecognized service
第四步:执行以下命令问题解决 ,给其增加可执行权限
chmod +x /etc/init.d/tomcat8090
2.开机自启动
chkconfig是Linux管理系统服务启动的一个工具。可以设置服务的运行级别,是否开机启动等
在ubuntu中,安装chkconfig,执行下面的命令:
wget http://archive.ubuntu.com/ubuntu/pool/universe/c/chkconfig/chkconfig_11.0-79.1-2_all.deb
dpkg -i chkconfig_11.0-79.1-2_all.deb
执行命令:
报错,执行命令解决:
ln -s /usr/lib/insserv/insserv /sbin/insserv
默认是在系统运行级别2345时,随系统自动启动。