调用 subprocess.unref() 之后再调用 subprocess.ref() 将会为子进程恢复已删除的引用计数,强迫父进程在退出自身之前等待子进程退出。

    1. const { spawn } = require('child_process');
    2. const subprocess = spawn(process.argv[0], ['child_program.js'], {
    3. detached: true,
    4. stdio: 'ignore'
    5. });
    6. subprocess.unref();
    7. subprocess.ref();