1

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

这是我的代码

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

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

如何在 app.quit() 之后打开我的文件并使其保持活动状态?

谢谢

4

2 回答 2

0

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

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

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

child.unref();

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

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

于 2020-04-20T13:56:55.917 回答
0

我使用 spawn 解决了这个问题

var execFile = require('child_process').spawn;
execFile(filePath, [], {'detached':true});

const { remote }  = require('electron');
const { app } = remote;
app.quit();
于 2020-04-20T14:03:19.670 回答