进程相关

#!/bin/bash  
#set -x 调试脚本可去掉注释
ProcNumber=$(ps -ef |grep -w nginx|wc -l)
if [ ${ProcNumber} -le 1 ];then  
systemctl restart nginx #进程不存在,重启服务
fi  
-eq:等于
-ne:不等于
-le:小于等于
-ge:大于等于
-lt:小于
-gt:大于

kill进程

一行命令实现:若进程存在就kill

 
pid=`ps -ef | grep test.py | grep -v grep |awk '{print $2}'`;if [ -n "$pid" ] ;then kill $pid;else echo '进程未启动'; fi

-n "$pid": -n 表示否定,不...
在$pid不为空时,结果为true,就是 not null的意思 

会存在单引号与双引号的问题,NR==1表示第一行 
$ ps -ef | grep web73 | grep -v grep |awk "NR==1 {print $2}"
xt          5477    1233  0 09:10 pts/0    00:00:00 ./web73

$ ps -ef | grep web73 | grep -v grep |awk 'NR==1 {print $2}'
5477

参考文章
sed sed