在生产环境下一个通信或者业务进程数量往往不止一个,下面这段shell,可以帮助你通过进程的名称获得其下的所有进程ID
代码如下:
#!/bin/bash
#如何根据进程名称获得进程
do_getpid()
{
ps -e |sed -e '/'$1'/!d
s/^ *\([0-9]*\).* \(.*\)$/\1 \2/
/'$1'/!d
s/ .*$//'
}
pid=`do_getpid $2`
echo $2
if test "${pid}" = ""
then
echo "no such processes"
exit 0
fi
case "$1" in
'-k')
echo $pid
kill -9 $pid
esac
case "$1" in
'-t')
echo $pid
kill -9 $pid
esac
case "$1" in
'-u1')
echo $pid
kill -30 $pid
esac
case "$1" in
'-l')
echo show $