免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5069 | 回复: 5
打印 上一主题 下一主题

进程用kill -9 杀不掉怎么办??高手请指点 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-15 12:18 |只看该作者 |倒序浏览
有些进程,使用kill -9 时杀不掉,在不重新启动的情况下,如何终止这些进程???
aizong 该用户已被删除
2 [报告]
发表于 2006-03-15 19:40 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2006-03-15 20:19 |只看该作者
杀不掉的ZOMBIE状态的进程,除了重启,别无他法。
LZ不用试了。

论坛徽章:
0
4 [报告]
发表于 2006-03-16 13:30 |只看该作者
ps -lp PID

看看PRI是多少,如果是127~154之间的,那么这个进程是非中断的进程,可能在做IO之类的动作,一般用kill是无法杀掉的。

如果是ZOMBIE进程,也是无法用kill杀掉的,只能重启。

论坛徽章:
0
5 [报告]
发表于 2006-03-17 13:09 |只看该作者
原帖由 oldnetdog 于 2006-3-16 13:30 发表

如果是127~154之间的,那么这个进程是非中断的进程,可能在做IO之类的动作,一般用kill是无法杀掉的。



这段话出自哪里,在哪里能查到?

论坛徽章:
0
6 [报告]
发表于 2006-07-14 09:23 |只看该作者
父进程在fork出子进程后,如果子进程死了,父进程没有给它收尸,就会产生僵尸进程。要杀死僵尸进程,只有两个办法:

1、改写父进程,在子进程死后要为它收尸。具体做法是接管SIGCHLD信号。子进程死后,会发送SIGCHLD信号给父进程,父进程收到此信号后,执行waitpid()函数为子进程收尸。

2、把父进程杀掉。父进程死后,它产生的所有僵尸进程也跟着消失。


以solaris为例:


// 在父进程中接管SIGCHLD信号
    newact.sa_handler = Quit&#59;
    newact.sa_flags   = 0&#59;
    newact.sa_handler = WaitChld&#59;// WaitChld为SIGCHLD信号处理函数名
    sigemptyset(&newact.sa_mask)&#59;
    sigaction(SIGCHLD, &newact, NULL)&#59;



// WaitChld函数

void WaitChld(int sig)
{
    char    szRtnMsg[128]&#59;
    int     status, chld_term_sig&#59;
    pid_t   pid&#59;

    pid = waitpid(0, &status, WNOHANG)&#59;

    if (WIFEXITED(status) != 0)     // 子进程正常退出
        return&#59;

    strcpy(szRtnMsg, \"子进程异常终止\"&#59;

    chld_term_sig = WTERMSIG(status)&#59;
    switch (chld_term_sig) {
    case SIGILL:
    case SIGTRAP:
    case SIGABRT:
    //case SIGEMT:
    case SIGFPE:
    case SIGBUS:
    case SIGSEGV:
    //case SIGSYS:
    case SIGXCPU:
        strcat(szRtnMsg, \"(CoreDumped)\"&#59;
        break&#59;

    case SIGQUIT:
    case SIGKILL:
    case SIGTERM:
        strcat(szRtnMsg, \"(Killed)\"&#59;
        break&#59;

    default:
        break&#59;
    }
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP