一个简单的自动kill的脚本
2020-08-12 本文已影响0人
_Gaara_
pidName="docker logs"
ID=`ps -ef | grep "$pidName" | grep -v "grep" | awk '{print $2}'`
if [ -z "$ID" ] ; then
kill -9 $ID
fi
echo '200'
简单对shell解释一下。
- awk是对得出的结果进行一个按组排列,大概就等于将输出内容转化成一个数组, $2就是输出第二个内容。
比如
root 8116 8044 0 Jan19 ? 00:00:00 mysql
polkitd 11763 11748 0 Jul27 ? 00:29:11 mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
polkitd 16270 15912 0 Jan19 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe
polkitd 16432 16270 0 Jan19 ? 02:34:12 /usr/sbin/mysqld --basedir=/usr --datadir
得到的内容就是
[root]# ps -ef |grep mysql | grep -v "grep" | awk '{print $5}'
Jan19
Jul27
Jan19
Jan19
- | grep -v "grep" -v就是一个排除,就是排除带有grep关键字的内容,因为在linux里任何一个命令都是有自己的进程的,即便你用一个命令去查询另一个命令,所以要将自己的进程排除出去