nonsense
V2EX  ›  Node.js

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

  •  
  •   nonsense · Nov 12, 2017 · 5334 views
    This topic created in 3103 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   ·   930 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 20:47 · PVG 04:47 · LAX 13:47 · JFK 16:47
    ♥ Do have faith in what you're doing.