V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
fxxkgw
V2EX  ›  Linux

crontab 创建大量进程如何一次删除

  •  
  •   fxxkgw · 2015-10-08 14:10:07 +08:00 · 2808 次点击
    这是一个创建于 3145 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Linux 下 crontab 创建了大量进程 把磁盘 io 卡死了,导致任务越积越多,现在有数千个
    大体机构就是一个 crond fork 出大量 CROND fork 出更多进程。
    大部分处于 S D 状态
    top | head -2 如下:

    top - 14:09:39 up 502 days, 22:41, 2 users, load average: 1521.80, 1521.94, 1521.90
    Tasks: 6886 total, 1 running, 6885 sleeping, 0 stopped, 0 zombie

    如何一次性杀掉所有的 crontab 进程呢,因为很多处于 D 的状态 kill -9 无效果

    13 条回复    2015-10-09 11:07:11 +08:00
    dreamtrail
        1
    dreamtrail  
       2015-10-08 15:27:26 +08:00
    killall 不就行了?
    likuku
        2
    likuku  
       2015-10-08 15:31:03 +08:00
    「 kill -9 」都无效... 难办
    hei1000
        3
    hei1000  
       2015-10-08 15:52:18 +08:00
    sudo kill -9 ...
    chzyer
        4
    chzyer  
       2015-10-08 16:38:23 +08:00
    sudo reboot
    lonelinsky
        5
    lonelinsky  
       2015-10-08 16:49:41 +08:00
    D 状态基本只能直接重启了 祝好运(看 uptime 和 load 也是满醉的

    另外 D 状态是在等 IO,所以应该是 IO 有问题才导致的 D 状态进程变多,而不是 D 状态的进程导致出现磁盘 IO 问题
    lonelinsky
        6
    lonelinsky  
       2015-10-08 16:54:27 +08:00
    另外, 题注可以用 sysrq 抓一个调度 /进程情况,看看目前都是卡在什么地方了...
    clino
        7
    clino  
       2015-10-08 16:57:37 +08:00
    如果用 ci 类型的软件,应该能把子进程全部 kill 掉吧
    不过你这个连 kill -9 都不行的就不知道怎么处理了
    fxxkgw
        8
    fxxkgw  
    OP
       2015-10-08 17:15:58 +08:00
    @lonelinsky
    感谢 确实是 io 问题 发现分布式文件系统挂了 重新整理了下 然后用 ps + awk + kill -18 kill -9 搞定了 避免了重启
    lonelinsky
        9
    lonelinsky  
       2015-10-08 18:26:11 +08:00
    @fxxkgw

    赞, 所以是先解决了分布式文件系统的问题,然后用 18 和 9 的信号量让这边的应用进程恢复正常的?
    crabRunning
        10
    crabRunning  
       2015-10-08 18:54:24 +08:00 via Android
    AWK
    fxxkgw
        11
    fxxkgw  
    OP
       2015-10-08 19:24:01 +08:00
    @lonelinsky 是的 在没解决文件系统时 杀 也可以杀死 不过特别慢 简单说就是用完杀命令行 几个小时才消失不到 50 个僵尸进程 切不确定到底是 kill -18 生效的还是系统自身回收机制
    lonelinsky
        12
    lonelinsky  
       2015-10-08 19:43:12 +08:00
    @fxxkgw 应该是自回收的, D 状态进程不会接受任何信号量,我刚以为你的 kill -18 是在文件系统修复之后输入的...
    yuchting
        13
    yuchting  
       2015-10-09 11:07:11 +08:00
    逛了几天 V2EX ,看了标题,心想终于让我逮到一个可以用专业知识回答的帖子了, pkill crond 来搞定,后来点进来一看,好吧, linux 小白果然是小白,不懂,抛砖
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2262 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:34 · PVG 11:34 · LAX 20:34 · JFK 23:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.