具有分离选项的Node.js子进程

时间:2016-09-19 15:38:52

标签: node.js electron child-process squirrel.windows

我正在创建一个电子桌面应用程序,我有代码使用带有选项分离的spawn():true。我的目的是让子进程在父进程终止时继续运行。

const spawn = require('child_process').spawn;
const ls = spawn('ls', ['-lh', '/usr'], { detached: true });

ls.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
  fs.writeFileSync('path-to-test.txt', 'stdout');
});

ls.stderr.on('data', (data) => {
  console.log(`stderr: ${data}`);
  fs.writeFileSync('path-to-test.txt', 'stderr');
});

ls.on('close', (code) => {
  console.log(`child process exited with code ${code}`);
});

松鼠活动https://github.com/electron/grunt-electron-installer#handling-squirrel-events

  switch (squirrelCommand) {
    case '--squirrel-install':
    case '--squirrel-updated':
      app.quit();

      return true;
    case '--squirrel-uninstall':
      app.quit();
      return true;
    case '--squirrel-obsolete':
      return true;
  }

我在squirrel事件之外测试了上面的代码,当父进程处于活动状态时,它运行良好。但是在我将这些代码放在像--squirrel-uninstall之类的squirrel事件中之后(父进程可能在子进程运行之前/期间终止),它只能运行命令,其中的任何代码(如fs函数)都不再起作用

我有一个问题是:尽管有squirrel事件,但是在节点父进程终止之后,子进程内部的逻辑代码是否可以工作?

0 个答案:

没有答案