V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
nonsense
V2EX  ›  Node.js

请教 spawn 出来的进程+子进程如何全部 kill 掉?

  •  
  •   nonsense · Nov 12, 2017 · 5325 views
    This topic created in 3100 days ago, the information mentioned may be changed or developed.
    linux 下通过 spawn 运行的 X 进程,该 X 进程自己又会生成子进程
    7 replies    2017-11-13 22:53:37 +08:00
    airqj
        1
    airqj  
       Nov 13, 2017 via Android
    reboot
    简单粗暴
    msg7086
        2
    msg7086  
       Nov 13, 2017
    用 cgroup 管理?
    wakiki
        3
    wakiki  
       Nov 13, 2017 via iPhone
    负的 process id
    pagxir
        4
    pagxir  
       Nov 13, 2017
    建组,然后直接杀进程组吧。
    dorothyREN
        5
    dorothyREN  
       Nov 13, 2017   ❤️ 1
    pkill processName
    metrue
        6
    metrue  
       Nov 13, 2017   ❤️ 1
    ```
    const spawn = require('child_process').spawn;
    const script = `${__dirname}/timeout_task.sh`;
    const p = spawn(script, { detached: false, shell: true });

    p.stdout.on('data', (data) => {
    // do something
    });

    p.stderr.on('data', (data) => {
    // do something
    });

    p.on('exit', (err) => {
    // do something
    });

    setTimeout(() => {
    console.log(process.kill(-p.pid, 'SIGKILL'));
    }, 1000);

    ```
    zqjnew
        7
    zqjnew  
       Nov 13, 2017   ❤️ 1
    A 进程里开 fork B 进程,B 进程里再开 N 进程,关闭,直接关 B 进程即可
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2537 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 129ms · UTC 00:28 · PVG 08:28 · LAX 17:28 · JFK 20:28
    ♥ Do have faith in what you're doing.