kill -9 `ps -t $ab|grep -v "PID"|sort|awk '{print $1}'`
这段命令似乎杀的是最小的进程,能让他按从大到小的方式自动杀死进程吗?

xianren 回复于:2003-04-14 15:23:48
clear
echo "\033[08;15H请输入需处理的终端号:"
echo "\033[08;37H[ ]\b\b\b\b\b\c"
echo "\033[08;38H\c"
read pidn
echo "\033[12;11H是否真的要杀掉$pidn终端的任何进程?[Y/N]___\b\b\c"
read yn
case $yn in
Y|y)
for i in `ps -t $pidn |awk '{print $1}'|grep -v PID
|sed -e '1!G;h;$!d'`
do
kill -9 $i 2>/dev/null
done
echo "\033[18;30H处理完毕!\c"
sleep 5
;;
*)
;;
esac

sd-feng 回复于:2003-04-14 17:27:54
不错

sdccf 回复于:2003-04-14 23:04:11
echo -n "输入终端号:"
read zdh
ps -t $zdh|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

qtyz 回复于:2003-04-15 20:30:38
kill -9 `ps -t $ab|grep -v "PID"|sort -r|awk '{print $1}'` 即可!

xianren 回复于:2003-04-15 20:33:06
关键是:
能让他按从大到小的方式自动杀死进程!

qtyz 回复于:2003-04-15 20:37:59
杀进程用 ‘kill -9’并不一定好,最好先用‘kill -15'之类的用一下,如杀死不了再用‘kill -9’;

xianren 回复于:2003-04-15 20:39:31
一般来说,用-15 之类,效果几乎为零!

htldm 回复于:2003-04-16 01:01:43
费了半天劲,想到一个简单的方法:
[code:1:cf00cb3531]

echo -n "输入终端号:"
read zdh
set - `ps -t $zdh|grep -v "PID"|sort -r`
while [ $# -gt 0 ]
do
kill -9 $1
shift 4
done

[/code:1:cf00cb3531]

sdccf 回复于:2003-04-16 05:39:14
好啊,今天试一下。

xianren 回复于:2003-04-16 13:47:36
进程号大不等于是后启进程,进程号是循环使用的,ps 查出的,一般下面的为上面的子进程,从防止出现孤儿进程角度说,我还是一为我给的shell是最恰当的。

liuy2175 回复于:2003-04-16 18:01:25
谢谢大家!
我已找到方法用sort -r 代替sort。

handry 回复于:2003-04-18 16:38:34
echo -n "输入终端号:"
read zdh
ps -t $zdh|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


以上这些代码只能是root用户能够用,请问各位大侠,怎么才能让普通用户具备

使用“输入终端号自动杀死进程的权限呢?”

geekchi 回复于:2003-04-21 12:27:28
让普通用户具备

使用“输入终端号自动杀死进程的权限呢”

用 asroot 命令

handry 回复于:2003-04-21 16:16:30
[quote:337481cb11="geekchi"]让普通用户具备

使用“输入终端号自动杀死进程的权限呢”

用 asroot 命令[/quote:337481cb11]


楼上的大侠,对于unix我不懂,您能给我说明白点吗?asroot怎么用,怎么写这段代码,普通用户才能用呢?

tongguo 回复于:2005-06-01 09:11:04
查看进程
# fuser /dev/ttyp201

杀死进程
# fuser -k /dev/ttyp201

在sco5.05上就有这个命令,很好用,就不要自已写什么c或shell了

12xuwei 回复于:2005-06-01 09:45:20
[quote:201f812b3c="geekchi"]让普通用户具备

使用“输入终端号自动杀死进程的权限呢”

用 asroot 命令[/quote:201f812b3c]



楼上的能说明白一点吗,小弟一直想让普通用户能有杀终端的权限

by_cj 回复于:2005-06-01 16:38:17
[quote:83f4748215="htldm"][/quote:83f4748215]
刚试了一下,这个办法很好用,谢谢!但能不能不用输入终端号,自动清除任何终端的进程呀??

sdccf 回复于:2005-06-01 17:37:35
那kill -9 -1就是了.

光明晓仙 回复于:2005-06-01 23:10:47
getpid() {
clear
echo "此功能用于终止终端的进程,只要输入相应的端口"
echo "请输入终端名: \c"
read pp
case $pp in
tty01|tty02|tty03|tty04|tty05|tty06|tty07|tty08|tty09|tty10);;
tty23a|tty23b|tty23c|tty23d);;
*) echo "\007\007\007错误的端口名,请重新输入....\c"
read hc
return ;;
esac
for i in `ps -a |grep "$pp" |awk ' { print $1 }'`
do
clear
kill -9 $i
done
}

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!