案例2-tomcat自启动脚本
适用于ubuntu,centos
涉及知识点
1. 函数
2. case语句
#!/bin/bash #chkconfig: 2345 10 90 #description:Tomcat service #pidfile: /var/run/tomcat.pid #processname: tomcat #说明: #第一行是服务的配置:第一个数字是服务的运行级,2345表明这个服务的运行级是2、3、4和5级(Linux的运行级为0到6);第二个数字是启动优先级,数值从0到99;第三个数是停止优先级,数值也是从0到99。(运行级介绍见附录4.2) #第二行是对服务的描述 #如果不写这两行,在执行“chkconfig --add tomcat”时,会出现“tomcat服务不支持chkconfig”的错误提示 #后面那两行是参照公司脚本加上的,可以测试下是否有用。 #tomcat auto-start export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_80 TOMCATS="apache-tomcat-7.0.81" getPID(){ PID=$(ps -ef | grep tomcat | awk '/java/' | awk '{print $2}' ) #awk ’/java/'是搜索有java关键字的所有行 } stopt(){ HOME=/home/axinfu/apache-tomcat-7.0.81 getPID if [[ "${PID}X" == "X" ]]; then echo "$TOMCATS is not running" else kill -9 $PID sleep 0.5 #echo $PID ---测试 PID=$(ps -ef | grep tomcat | awk '/java/' | awk '{print $2}' ) # echo $PID --测试 [ -z "$PID" ] && echo "TOMCAT HAS STOPPED" || echo "TOMCAT IS STOPPING" #注意:在杀掉进程后,需要重新定义PID的变量值,-z可以判断字符串是否为空 fi } statust(){ getPID if [[ "${PID}X" == "X" ]]; then echo "TOMCATS is not running" else echo "TOMCATS is running... PID: ${PID}" fi } case $1 in start) /bin/su -s /bin/sh - axinfu -c "cd /home/axinfu/apache-tomcat-7.0.81/bin/&&./startup.sh" ;; stop) stopt ;; restart) stopt /bin/su -s /bin/sh - axinfu -c "cd /home/axinfu/apache-tomcat-7.0.81/bin/&&./startup.sh" # -s : --shell -c:给shell传一个命令 -axinfu:就是切换到axinfu用户下。 ;; status) statust ;; *) echo 'Usage:tomcat start|stop|restart|status' ;; esac exit 0
ubuntu加入开机启动的命令
1)开机启动tomcat,如果是简单的一条启动命令,可以在/etc/rc.local中添加,
2)如果想运行脚本,则可先将脚本复制或者软连接到/etc/init.d/目录下,然后用:
update-rc.d tomcat defaults NN命令(NN为启动顺序,比如95) #加入自启动命令
update-rc.d -f tomcat remove #去取自启动
ubuntu16.4系统查看自启服务:
需要自行安装一个sysv-rc-conf的工具来查看:
sudo apt-get install sysv-rc-conf
查看自启命令, 也可以添加删除启动项:
sudo sysv-rc-conf
centos加入开机启动命令
tomcat加到开机启动 chkconfig --add tomcat chkconfig --list tomcat 查看是否成功
努力生活,融于自然