寻找异常退出终端上的进程

个别telnet上来的用户没有正常退出应用程序,直接关闭telnet程序,保险的应用程序可能屏蔽了一些信号,结果这些失去父进程的可怜孩子,只好用频繁的cpu活动来回报操作系统。 经检查这些进程有个特点,就是ps显示有终端号,但是在who输出中没有该终端,根据这个属性,编写了查杀脚本:

ps -e -o tty | grep -v -E "\-|   |TT" | awk '{ print $1 }'| sort | uniq > /tmp/ps_out.$$
who | awk '{ print $2 }' | sort > /tmp/who_out.$$

for tty in `diff /tmp/ps_out.$$ /tmp/who_out.$$ | grep "<.*pts" | cut -c3-`
do
    username=`ps -t pts/0 -o user= | awk '{ print $1 }'`
    if [ x$username != "xroot" ] && [ x$username != "xinformix" ]
    then
        ps uxt $tty
        if [ $? -eq 0 ] && ! ( who | grep $tty )
        then
            echo "========================================="
                echo kill -9 `ps -t $tty -o pid=`
            echo "========================================="
        fi
    fi
done
rm /tmp/ps_out.$$ /tmp/who_out.$$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值