#!/bin/sh
ID=`ps -ef|grep scada-server-report-smt-0.0.1-SNAPSHOT.jar|grep -v grep|awk '{print $2}'`
echo $ID
echo "---------------"
if [ -z $ID ]; then
echo "无杀死的进程"
else
for id in $ID
do
kill -9 $id
echo "killed $id"
done
fi
sleep 5
nohup java -Xms512m -Xmx512m -jar scada-server-report-smt-0.0.1-SNAPSHOT.jar > /dev/null 2>&1 &
echo "启动成功"
对应命令解读:
1.查询正在进行的 scada-server-report-smt-0.0.1-SNAPSHOT.jar 服务的名称,排除正查询的ps命令的服务,获取打印内容的第二个类型(对应的是启动的服务的pid)
2.判断pid是否为空,不为空的时候杀死该进行,休眠5s后,用守护进程的方式运行scada-server-report-smt-0.0.1-SNAPSHOT.jar并输出对应的文件
3.启动的时候重新运行下次shell脚本就行了,对应自己的jar包可以更改 scada-server-report-smt-0.0.1-SNAPSHOT.jar此名称即可