1.spingboiot项目基础版本
SUM=`ps -ef|grep admin-center-0.0.1-SNAPSHOT.jar|grep -v start|grep -v grep| wc -l`
if [ $SUM -gt 0 ];
then
ps -ef|grep admin-center-0.0.1-SNAPSHOT.jar|grep -v start|grep -v grep|awk '{print $2}'|xargs kill -9
else
echo "no exist"
fi
nohup /usr/local/jdk1.8.0_121/bin/java -jar -Dlog4j2.formatMsgNoLookups=true -Xms2048m -Xmx2048m /pony/application/appcenter/admin-center-0.0.1-SNAPSHOT.jar > /pony/logs/appcenter/appcenter.log 2>&1 &
1. grep -v grep排除包含grep内容的所有内容
2. wc -l 显示所有符合条件的行数
1+2效果是查找smartcity-sociaty-center-0.0.1-SNAPSHOT.jar这个所有的行数,但是排除调grep,start所在的行
3. | awk '{print $2}' 查找进程号
4. xargs 传递参数,将左边获得的参数传递给右边
3+4效果是查找出符合条件的进程,然后作为kill -9 需要的参数传入
5. 2>&1 1:代表标准输出文件 2:代表错误输出文件 2>&1 = 将错误文件也重定向到标准文件
6. 最后一个& 代表结尾,当前窗口不被锁定,但是 一般 nohup 都是要搭配 结尾&使用
当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件
2.spingboiot项目: 一个主机有多个同样的工程,使用不同端口号启动的
此时想要在脚本里同时查找所有相项目对应的进程号并全部关闭,就必须在打印进程号的语法上进行修改了,核心是这个 '{printf "%s ", $2}'
SUM=`ps -ef|grep mobile.jar |grep -v start|grep -v grep| wc -l`
if [ $SUM -gt 0 ];
then
ps -ef|grep mobile.jar|grep -v start|grep -v grep|awk '{printf "%s ", $2}'|xargs kill -9
else
echo "no exist"
fi
nohup /usr/local/jdk1.8.0_121/bin/java -jar -Dlog4j2.formatMsgNoLookups=true -Xms2048m -Xmx2048m /pony/application/appcenter/mobile.jar > /pony/logs/appcenter/appcenter.log 2>&1 &
3. ssm项目
停止脚本如下,可以再根据实际需要补充启动工程命令
ps -ef|grep apache-tomcat-screen|grep -v grep|awk '{print $2}'|xargs kill -9
//grep -v start不需要,因为start是在目标里面包含了