• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

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

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 25次 | 进入软件测试论坛讨论

领测软件测试网
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
}

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网