如何批量杀掉进程?

发表于:2007-06-08来源:作者:点击数: 标签:
flybirdxp 回复于:2002-12-16 12:07:09 iftest$#-eq0 then echoUsage:killprocprocname exit0 fi fori dops-ea|awk-vname=$i' BEGIN{ n=0 } $4==name!system(kill-9$1){ print$1,killed n++ } END{ if(n==0) printNoprocesskilled! else printKill,n,name,p

   

 flybirdxp 回复于:2002-12-16 12:07:09
if test $# -eq 0
then
    echo "Usage: killproc procname"
    exit 0
fi
for i
    do ps -ea | awk -v name=$i '
        BEGIN {
            n = 0;
        }
        $4 == name && !system("kill -9 " $1) {
            print $1, "killed"
            n ++
        }
        END {
            if (n == 0)
                print "No process killed !"
            else
                print "Kill", n, name, "process !"
        }'
done


 king1981 回复于:2002-12-16 17:00:37
我也有一个
它是 杀同一有户的
它的作者是::MARTIN .P
#include <stdio.h>

main(argc, argv)
  int argc;
  char *argv[];
{
  char *prog,
       *user,
       command[1024],
       *strrchr();

  if ((prog = strrchr(argv[0], '/')) == 0)
    prog = argv[0];
  else
    prog++;

  if (argc != 2) {
    fprintf(stderr, "Usage: %s <user>\n", prog);
    exit(1);
  }
  user = argv[1]

  setuid(0);
  setgid(0);

  /* There is a better way but this is easy to program.               */
  sprintf(command, "\
ALL_PROC=''\n\
for PROC in `ps -u%s | cut -c-6`\n\
do\n\
    if [ $PROC != PID ]\n\
    then\n\
        ALL_PROC=$ALL_PROC\\ $PROC\n\
    fi\n\
done\n\
if [ -n $ALL_PROC ]\n\
then\n\
    kill -9 $ALL_PROC\n\
fi\n", user);

  system(command);
} /* main() */




 yuanmeng 回复于:2002-12-17 11:49:56
  多谢了!

 sdclearcase/" target="_blank" >ccf 回复于:2002-12-17 14:16:43
我这里有一个根据终端号杀进程的SHELL,也是我们机房每天都使用的。

echo -n " 输入终端号:" 
read ttynum 
ps -t $ttynum|awk '{print "kill -9 " $1}'>kill_pid 
TMP=/tmp/tmpfile_$$ 
sed -e 's/kill -9 PID/ /g' < kill_pid > $TMP 
mv $TMP kill_pid 
sh kill_pid 


 kingwoo 回复于:2002-12-17 16:00:50
給你一个最简单的
#/usr/bin
ps -e|egrep $1 |awk "print \"kill -9\" \$1}" | /bin/sh

 king1981 回复于:2002-12-26 21:08:19
有时候要注意 -9  的权限哦哥哥~~~~~~~~~~~~~ 

原文转自:http://www.ltesting.net