原文地址:http://blog.csdn.net/kardelpeng/article/details/6755455#comments
Tomcat重启脚本,可以在发布版本的时候避免手动运行shudown.sh和startup.sh脚本。有些朋友应该还遇到经常执行./shutdown.sh后,tomcat是stop了,但是java的jdk进程还在,这个时候我们就需要 通过 ps -ef|grep java来找到相应的进程ID,然后通过 kill -9 java的进程ID强制杀掉。 这个样步骤会让发布新的项目版本步骤繁琐。
为此我自己些了个新的脚本tomcat_restart.sh
- #!/bin/bash
- project_name=ipnms
- tomcat_path=/home/ipnms/apache-tomcat-5.5/bin
- pid=`ps -ef|grep $project_name|grep -v grep|awk '{print $2}' `
- echo $pid
- if [ -n "$pid" ];
- then
- {
- echo "==========tomcat is start============"
- $tomcat_path/shutdown.sh
- sleep 5
- $tomcat_path/shutdown.sh
- sleep 15
- pid=`ps -ef|grep $project_name|grep -v grep|awk '{print $2}'`
- if [ -n "$pid" ];
- then
- {
- echo "======to kill the tomcat pid $pid========"
- kill -9 $pid
- sleep 3
- }
- fi
- echo "==========start tomcat============"
- $tomcat_path/startup.sh
- }
- else
- {
- echo "==========tomcat is stop=====start======="
- $tomcat_path/startup.sh
- }
- fi
注意:project_name 就是我们通过 ps -ef|grep project_name 能得到单一的一个我们需要杀掉的因为tomcat而启动的java的jdk进程。
tomcat_path就是我们在服务器上tomcat的bin目录的具体路径。
通过以上方法我们可以很方便的重启我们的tomcat。
如果想让tomcat定时重启,我们只需要把这个脚本放到linux的crontab下面。
具体命令
[root@LNServer bin]# crontab -e
0 2 * * * /orabak/orabak.sh >> /orabak/crontab.log
0 7 * * * /orabak/cvs_bak/cvsbak.sh >> /orabak/cvs_bak/cvsbak.log
0 3 * * * /home/ipnms/apache-tomcat-5.5/bin/tomcat_restart.sh >> /home/ipnms/apache-tomcat-5.5/bin/tomcat_restart.log
最后一个就是我们设置的定时任务,该任务会在每天的凌晨3点执行,并且会把相应的日志存在/home/ipnms/apache-tomcat-5.5/bin/tomcat_restart.log文件中。
保存后,我们可以输入crontab -l查看改任务是否呗放置到了 crontab.
启动定时服务:
[root@]# service crond stop
[root@]# service crond start
补充:
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
时程表的基本格式 :
* * * * * program
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
当第1列 为 * 时表示每分钟都要执行 program,第2列为 * 时表示每小时都要执行程式,其余类推
当第1列为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,第2列为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
当第1列为 */n 时表示每 n 分钟个时间间隔执行一次,第2列 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
当第1列为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,第2列 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推