如何独立于终端运行Electron应用程序? 解决方法

问题描述

我正在寻找一种独立于终端本身运行电子应用程序(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暂停在终端中运行的进程,从而断开节点的终端部分与原始应用的连接。
  • &表示我们不希望终端等待命令执行。

现在我们可以关闭终端了,电子应用程序应该继续运行...!


积分:

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...