有些手动部署jar的项目地方,项目重启每次需要先ps -es查找进程 然后kill比较麻烦,写个简单脚本
保存成xxx.sh文件然后chmod -R 777 xxx.sh
直接复制可能会出错 识别空格错误之类的 可以手打一遍
用到的命令 ps -ef | awk
能够只返回某列数据($2,进程pid)
ps -ef | awk '/nginx:/ && !/awk/{print $2}'
里面的nginx:需要自己调
如果只传nginx,类似nginx 进程杀不干净
root 23619 1 0 8月23 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody 23620 23619 0 8月23 ? 00:00:07 nginx: worker process
nobody 23621 23619 0 8月23 ? 00:00:53 nginx: worker process
nobody 23623 23619 0 8月23 ? 00:00:28 nginx: worker process
nobody 23624 23619 0 8月23 ? 00:00:35 nginx: worker process
nobody 23625 23619 0 8月23 ? 00:00:10 nginx: cache manager process
-n:验证字符长度是否大于0
-z: 验证字符长度是否等于0
代码如下:
#!/bin/bash
var_1=`ps -ef | awk '/nginx:/ && !/awk/{print $2}'`
if [ -n "$var_1" ]; then
for i in $var_1; do
kill -9 $i
echo "循环 $i"
done
#echo "进程运行中nginx: $var_1"
#kill -9 $var_1
echo '关闭nginx旧进程'
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
echo '启动nginx服务成功'
else
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
echo '启动nginx成功'
fi