javascript - 即使父进程终止,如何保持子进程的生命

标签 javascript node.js cordova electron execfile

我有一个Electron应用程序,必须启动一个exe文件并退出该应用程序。问题是,当我尝试退出时,应用程序也关闭并且启动了exe文件...我想改为打开我的exe文件...

这是我的代码

   var execFile = require('child_process').execFile;
   execFile(filePath).unref();

   const { remote }  = require('electron');
   const { app } = remote;
   app.quit();

如何在app.quit()之后打开文件并使它保持 Activity 状态?

谢谢

最佳答案

我们可以使用detached选项在后台执行它:

const { spawn } = require('child_process');

const child = spawn(`exefile path`, [...args], {
  detached: true,
});

child.unref();

分离的子进程的确切行为取决于操作系统。在Windows上,分离的子进程将具有其自己的控制台窗口,而在Linux上,分离的子进程将成为新进程组和 session 的领导者。

如果在分离的进程上调用了unref函数,则父进程可以独立于子进程退出。如果 child 正在执行一个长时间运行的进程,这可能会很有用,但要使其在后台运行, child 的stdio配置也必须独立于父级。

关于javascript - 即使父进程终止,如何保持子进程的生命,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61322273/

相关文章:

css - 仅使用 CSS 和 HTML 重现 jQuery UI 爆炸动画?

javascript - AngularJS $http.post 与正文

javascript - 为什么我不能在浏览器 : You may not have the required environment or OS to run this project 中运行空白的 Cordova 应用程序

php - 多个 JSON 对象响应

node.js - mongo 的简短用户友好 ID

node.js - 错误 : 16 UNAUTHENTICATED: Request had invalid authentication credentials. 预期的 OAuth 2 访问 token 、登录 cookie 或其他有效的身份验证凭据

node.js - 带有身份验证错误的 MongoDB Atlas 集群连接问题

javascript - 使文本在移动设备上可见,在桌面设备上不可见

JavaScript 未按顺序运行

javascript - 是否可以在 webkit 浏览器的 Android 网页中运行 Javascript 功能?