在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ node如何手動關(guān)閉子進程

node如何手動關(guān)閉子進程

子進程child.js:

setInterval(function () {
    console.log(1);
},2000);

父進程:

const fs = require('fs');
const out = fs.openSync('a.txt','a');
const err = fs.openSync('b.txt','a');
const p = require('child_process').spawn(
        'node',
        ['child.js','a','b'],
        {
            'stdio':['ignore',out,err],
            'detached':true
        }
    );
p.unref();

設(shè)置了spawn方法的參數(shù)'stdio':['ignore',out,err]和 'detached':true后,子進程一直運行,關(guān)閉父進程的終端或者關(guān)閉IDE都不能終止,怎么辦?

回答
編輯回答
拽很帥

你的子進程是一個無限循環(huán)觸發(fā)程序。
你只有強制用kill去殺死這個子進程啊。
比如在主進程退出前主動kill子進程。添加下面的代碼到主進程退出程序片段中

p.kill('SIGHUP')
2017年6月12日 22:28
編輯回答
尋仙

有個第三方庫:

https://github.com/pkrumins/n...

我也遇到過監(jiān)視detached進程的問題,用這個第三方庫能解決,pm2也是使用了這套代碼殺死子進程的。

2017年3月10日 13:57