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/