1、查看进程pid
通过获取进程pid来判断该进程是否存在
ps -ef | grep app.jar | grep -v grep | awk '{print $2}'、
ps -ef | grep app.jar 打印出包含 app.jar 的所有进程信息(一行一个进程的信息)
grep -v grep 过滤掉包含 grep 字符的行,过滤掉当前的查找进程
awk '{print $2}' 输出第二列的内容;等于0时输出所有内容,大于0时输出指定列的内容;
2、使用
#!/bin/sh
PIDS=`ps -ef | grep app.jar | grep -v grep | awk '{print $2}'`
#不使用 `` 也可以使用 ${}
if [ "$PIDS" != "" ]; then
kill -9 $PIDS
nohup java -jar -Dserver.port=8080 app.jar >run.log 2>&1&
echo "app-api restart!"
else
nohup java -jar -Dserver.port=8080 app.jar >run.log 2>&1&
echo "app-api started!"
fi