UNIX 中如何批量杀掉进程?

发表于:2007-07-01来源:作者:点击数: 标签:
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 "Ki


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

我也有一个
它是 杀同一有户的
它的作者是::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() */

給你一个最简单的
#/usr/bin
ps -e|egrep $1 |awk "print \"kill -9\" \$1}" | /bin/sh

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