Linux shell脚本实现根据进程名杀死进程的方法,免去每次都要先ps -ef|grep列出所有的进程,然后kill进程id的麻烦步骤。
提醒:以下仅供参考,实际上linux已经有相关的命令了,即 killall,下面的内容是还不知道这个命令的时候鼓捣的。
Shell脚本源码如下:
#!/bin/sh #根据进程名杀死进程 if [ $# -lt 1 ] then echo "缺少参数:procedure_name" exit 1 fi PROCESS=`ps -ef|grep $1|grep -v grep|grep -v PPID|awk '{ print $2}'` for i in $PROCESS do echo "Kill the $1 process [ $i ]" kill -9 $i done
保存该代码为可执行文件,比如:killname
然后如果需要杀死进程名为 phpernote.php 的进程,下面提供几种方法:
(1)执行如下命令:
killname phpernote.php
(2)执行:
kill $(ps -ef | grep 'phpernote.php' | grep -v grep | awk '{print $2}')
(3)执行:
ps -ef | grep phpernote.php| grep -v grep | awk '{print $2}' | xargs kill -9
(4)执行:
killall phpernote.php