问题描述
我正在寻找一种独立于终端本身运行电子应用程序(npm start
命令)的方法。这意味着我希望即使终端关闭,Electron应用程序也可以继续运行。
我不确定是否可以。
我已经尝试过cd electron-directory-path && nohup npm start &
,但这可以使我将终端实例用于其他命令,并防止任何电子消息在终端中弹出。但是,关闭终端仍然会杀死Electron应用程序。
即使cd electron-directory-path && npm start &
做同样的事情,但是我还没有找到一种完全独立于终端实例来运行Electron应用程序的方法...
解决方法
您通过nohup npm start &
启动了Electron应用程序,但是当关闭终端窗口时,Electron应用程序也会终止(与预期相反)。
我可以重现该行为,但并非始终如此。在大约30%的实验中,Electron应用并未终止。我还无法找到导致这种变化的原因。
解决方法
以下解决方法将在不终止Electron应用程序的情况下关闭终端。在我的测试中,它每次都有效:
-
像以前一样启动Electron应用程序:
nohup npm start &
-
通过发出
关闭运行中的终端nohup kill $$ &
$$
给出当前进程ID。 请注意,kill $$
不起作用。
如果您不一定需要从终端运行,也可以create a desktop file to start the app。
,让pathname
为节点应用位置的路径。
只需使用命令:
cd pathname && npm start && ^Z &
cd
将目录更改为我们需要执行终端命令的目录。&&
表示此命令之后还有其他命令要执行。npm start
启动npm应用^Z
暂停在终端中运行的进程,从而断开节点的终端部分与原始应用的连接。&
表示我们不希望终端等待命令执行。
现在我们可以关闭终端了,电子应用程序应该继续运行...!
积分: