自动运行和关闭jar程序的sh脚本
2009-11-01 16:05
225 查看
前段时间研究了下如何把java程序打包成jar在centos上运行,但是jar文件多了之后,启动和关闭都很麻烦,于是考虑写个脚本来搞定它!大概的思路是:先得到运行程序的PID,然后kill掉该程序,隔一段时间后再启动该程序.脚本代码如下:
#!/bin/sh
#!restartjar.sh
ps -ef| grep 'test1.jar'|grep -v grep|awk '{print $2}'|xargs kill -9
ps -ef| grep 'test2.jar'|grep -v grep|awk '{print $2}'|xargs kill -9
ps -ef| grep 'test3.jar'|grep -v grep|awk '{print $2}'|xargs kill -9
ps -ef| grep 'test4.jar'|grep -v grep|awk '{print $2}'|xargs kill -9
sleep 2
ps -ef|grep java
cd /root/test/test1
rm -rf nohup.out
cd /root/test/test2
rm -rf nohup.out
cd /root/test/test3
rm -rf nohup.out
cd /root/test/test4
rm -rf nohup.out
sleep 120
cd /root/test/test1
nohup java -jar -Xms128m -Xmx2048m test1.jar &
cd /root/test/test2
nohup java -jar -Xms128m -Xmx2048m test2.jar &
cd /root/test/test3
nohup java -jar -Xms128m -Xmx2048m test3.jar &
cd /root/test/test4
nohup java -jar -Xms128m -Xmx2048m test4.jar &
exit 0
代码就这么多了,解释下一些关键点
ps -ef| grep 'test1.jar'|grep -v grep|awk '{print $2}'|xargs kill -9 这行代码中:
grep -v grep是去掉ps test1.jar 的PID
awk '{print $2}' 是取ps 结果的第二列的值,也就是test1.jar的PID
xargs 是将前面的代码运行的结果最为kill -9 的参数来强制结束掉test1.jar程序
sleep 120:等待3分钟,在启动jar程序
以上不正确的地方还请各位高手斧正下!!
#!/bin/sh
#!restartjar.sh
ps -ef| grep 'test1.jar'|grep -v grep|awk '{print $2}'|xargs kill -9
ps -ef| grep 'test2.jar'|grep -v grep|awk '{print $2}'|xargs kill -9
ps -ef| grep 'test3.jar'|grep -v grep|awk '{print $2}'|xargs kill -9
ps -ef| grep 'test4.jar'|grep -v grep|awk '{print $2}'|xargs kill -9
sleep 2
ps -ef|grep java
cd /root/test/test1
rm -rf nohup.out
cd /root/test/test2
rm -rf nohup.out
cd /root/test/test3
rm -rf nohup.out
cd /root/test/test4
rm -rf nohup.out
sleep 120
cd /root/test/test1
nohup java -jar -Xms128m -Xmx2048m test1.jar &
cd /root/test/test2
nohup java -jar -Xms128m -Xmx2048m test2.jar &
cd /root/test/test3
nohup java -jar -Xms128m -Xmx2048m test3.jar &
cd /root/test/test4
nohup java -jar -Xms128m -Xmx2048m test4.jar &
exit 0
代码就这么多了,解释下一些关键点
ps -ef| grep 'test1.jar'|grep -v grep|awk '{print $2}'|xargs kill -9 这行代码中:
grep -v grep是去掉ps test1.jar 的PID
awk '{print $2}' 是取ps 结果的第二列的值,也就是test1.jar的PID
xargs 是将前面的代码运行的结果最为kill -9 的参数来强制结束掉test1.jar程序
sleep 120:等待3分钟,在启动jar程序
以上不正确的地方还请各位高手斧正下!!
相关文章推荐
- 以&运行在后台的程序,关闭terminal后,相应进进程自动关闭
- Autoit和AutoHotKey自动运行程序脚本
- Inno Setup安装、卸载时判断是否程序正在运行,安装完成时自动打开网页的脚本
- Linux下运用sh脚本运行可执行的jar文件
- win7下开机启动自动运行程序,脚本
- CentOS开机自动运行程序的脚本
- CentOS开机自动运行程序的脚本
- 在Linux中开机自动运行普通用户脚本程序
- 以&运行在后台的程序,关闭terminal后,相应进进程自动关闭
- centos开机自动运行[.sh]程序的方法
- Linux crontab的使用方式,sh脚本的编写,sh脚本自动启动tomcat服务器,sh监控系统运行情况
- CentOS开机自动运行程序的脚本
- CentOS开机自动运行程序的脚本
- Inno Setup安装、卸载时判断是否程序正在运行,安装完成时自动打开网页的脚本
- CentOS开机自动运行程序的脚本
- WinForm实现程序一段时间不运行自动关闭的方法
- 在Linux中,开机自动运行普通用户的脚本程序
- 在Linux中开机自动运行普通用户脚本程序
- 如何把Java程序打成JAR包并能自动运行
- centos开机自动运行[.sh]程序的方法