关于输入终端号自动杀死进程的问题!

发表于:2007-06-08来源:作者:点击数: 标签:
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"\03

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
不错

 sdclearcase/" target="_blank" >ccf 回复于: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.ltesting.net