完美解决Linux服务器tomcat开机自启动问题
经过多次测试终于彻底解决tomcat开机自启动的问题了
PID3=`ps aux | grep /home/server/shichuan/ | grep java | awk '{print $2}'`
if [ -n "$PID3" ]; then
这个判断pid的方式还是可能出现启动失败的情况
# tail -n 1 /home/server/shichuan/logs/catalina.out |grep 'INFO: Server startup in'
INFO: Server startup in 37417 ms
这个才是真正的启动成功,由于是用autostart的方式会先执行停止后启动,一定不会重新最后一行是之前启动成功留下来的
启动成功需要40秒左右,应该先sleep 足够长的时间再检测,否则会出现启动多个tomcat进程的问题
一次性杀掉多个tomcat进程命令:
ps -ef|grep -v grep|grep /home/server/shichuan/ | grep java |awk '{print "kill -9 "$2}'|sh
$TOMCAT_PATH/startup.sh
sleep 60
for((i=1;i<10;i++))
do
LASTINFO=`tail -n 1 /home/server/shichuan/logs/catalina.out |grep 'INFO: Server startup in'`
if [ -n "$LASTINFO" ]; then
break
else
ps -ef|grep -v grep|grep /home/server/shichuan/ | grep java |awk '{print "kill -9 "$2}'|sh
sleep 1
$TOMCAT_PATH/startup.sh
sleep 60
fi
done
设置权限:chmod 777 autostart.sh
在/etc/rc.d/rc.local中加入脚本:
vim /etc/rc.local
/home/server/shichuan/bin/autostart.sh
保存并退出,下次重启会生效。
============================
ps -ef|grep -v grep|grep /home/server/shichuan/ | grep java
ps aux | grep /home/server/shichuan/ | grep java | awk '{print $2}'
ps -ef|grep -v grep|grep /home/server/shichuan/ | grep java |awk '{print "kill -9 "$2}'
ps -ef|grep -v grep|grep /home/server/shichuan/ | grep java |awk '{print "kill -9 "$2}'|sh
ps -ef | 获取当前服务器所有进程
grep -v grep 相当于grep自己吧自己过滤掉,就是不显示grep
grep /home/server/shichuan/ | grep java 过滤出包含这些内容,即过滤出对应的pid
awk 截取 $2 第二个域的pid号。通过调用外部命令kill 来干掉
|sh 把前面print输出的内容作为命令执行
===========================
其他相关命令:
service nginx restart
ls -lh /home/server/shichuan/bin/autostart.sh
cd /home/server/shichuan/bin/
vim /home/server/shichuan/bin/autostart.sh
tail -f /home/server/shichuan/logs/catalina.out
===========================
下面是autostart.sh的内容:
#!/bin/sh
TOMCAT_PATH=/home/server/shichuan/bin ps -ef|grep -v grep|grep /home/server/shichuan/ | grep java |awk '{print "kill -9 "$2}'|sh
sleep $TOMCAT_PATH/startup.sh sleep for((i=;i<;i++))
do
LASTINFO=`tail -n /home/server/shichuan/logs/catalina.out |grep 'INFO: Server startup in'`
if [ -n "$LASTINFO" ]; then
break
else
ps -ef|grep -v grep|grep /home/server/shichuan/ | grep java |awk '{print "kill -9 "$2}'|sh
sleep
$TOMCAT_PATH/startup.sh
sleep
fi
done
==============
“|”是管道符,代表将它左边的命令产生的输出,作为标准输出,再作为标准输入,汇入到右边的命令里。| sh 简单来说就是把左边sh文件的内容交给右边sh去执行。
完美解决Linux服务器tomcat开机自启动问题的更多相关文章
- linux设置tomcat开机自启动
本文假设jdk环境安装成功,如何安装JDK请参考这个链接: http://www.cnblogs.com/yoyotl/p/5395208.html 1. 下载apache的安装包,例如本例下载了ap ...
- linux下tomcat开机自启动
tomcat自启动配置: 方法一: vi /etc/rc.local 添加如下一行 /opt/apache-tomcat-7.0.29/bin/startup.sh (脚本绝对路径) 注意:要添加在e ...
- Linux下设置开机自启动Tomcat
方法一: linux 下tomcat开机自启动修改Tomcat/bin/startup.sh 为: export JAVA_HOME=/usr/java/j2sdk1..2_08 export CLA ...
- Linux学习12-CentOS设置多个tomcat开机自启动
前言 一台服务器上有多个tomcat环境,重启服务器后,每次需要手动一个个启动服务,非常麻烦,于是可以设置tomcat开机自启动. tomcat开机自启动非常慢,可以修改jvm下配置解决tomcat开 ...
- linux下配置tomcat开机自启动
Linux下配置tomcat开机自启动 1.写一个tomcat脚本,内容如下,设置其权限为755,放在/etc/init.d/目录下 #!/bin/bash## /etc/init.d/tomca ...
- Linux设置程序开机自启动,系统命令chkconfig及linux /etc/rc.d/目录的详解
整理了linux下程序开启几种方式,转载相关博客做统一记录 <linux程序设置开机自启动>转载自:https://www.cnblogs.com/flcz/p/7691532.html ...
- Linux下Tomcat开机自动启动
linux下tomcat开机自动启动有两种方法,一种是简单,一种是复杂而又专业的,使用shell脚本要实现,我们一般推荐shell脚本启动方式.下面我们分别介绍这两种方法. 1.shell脚本启动 众 ...
- iTerm 2打造ssh完美连接Linux服务器快捷方法
iTerm 2打造ssh完美连接Linux服务器快捷方法 2019年05月02日 10:40:19 Mars0908 阅读数 213更多 个人分类: Mac下开发 版权声明:本文为博主原创文章,遵 ...
- 完美解决 Linux 下 Sublime Text 中文输入
首先,我参考了好几篇文章,都是蛮不错的,先列出来: sublime-text-imfix:首先推荐这个方法,最简单,但是在我的系统上有些问题.可用这个的强烈推荐用这个 完美解决 Linux 下 Sub ...
随机推荐
- iOS - APP审核Guideline 2.5.1被拒,使用了私有API
最近iOS 审核被拒,说是使用了私有API:com.apple.springboard.lockcomplete 具体内容如下: 发件人 Apple . Performance: Software R ...
- Shell转义字符与变量替换
转义字符 含义 \\ 反斜杠 \a 警报,响铃 \b 退格(删除键) \f 换页(FF),将当前位置移到下页开头 \n 换行 \r 回车 \t 水平制表符(tab键) \v 垂直制表符 vim te ...
- 一些常用的opencv函数
分配图像空间: IplImage* cvCreateImage(CvSize size, int depth, int channels); size: cvSize(width,hei ...
- traceroute 排查 nginx 反向代理 配置
[root@b ~]# traceroute www.test.comtraceroute to www.test.com (134.175.58.66), 30 hops max, 60 byte ...
- Cache replacement policies 缓存实现算法
Cache replacement policies - Wikipedia https://en.wikipedia.org/wiki/Cache_replacement_policies Cach ...
- pandas1
https://www.cnblogs.com/nxld/p/6058591.html
- java内部类作用
推荐一. 定义 放在一个类的内部的类我们就叫内部类. 二. 作用 1.内部类可以很好的实现隐藏 一般的非内部类,是不允许有 private 与protected权限的,但内部类可以 2.内部类拥有外围 ...
- Nginx日志切割之Logrotate篇
不管是什么日志文件,都是会越来越大的,大到一定程度就是个可怕的事情了,所以要及早的做处理,方法之一就是按时间段来存储,不过linux系统提供了Logrotate的日志管理工具,很好用,不用写计划任务脚 ...
- Spark-Cache与Checkpoint
一.Cache缓存操作 scala> val rdd1 = sc.textFile("hdfs://192.168.146.111:9000/logs") rdd1: org ...
- getParameter和getAttribute区别
(1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法 (2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter ...