如何 运行 独立于终端的 Electron 应用程序?
How to run Electron app independent of terminal?
我正在寻找一种独立于终端本身的 运行 Electron 应用程序(npm start
命令)的方法。这意味着即使终端关闭,我也希望 Electron 应用程序保持 运行ning..
我不确定是否可以。
我已经尝试过 cd electron-directory-path && nohup npm start &
,但这虽然允许我将终端实例用于其他命令并防止在终端中弹出任何电子消息。但是,关闭终端仍然会杀死 Electron 应用程序。
甚至 cd electron-directory-path && npm start &
也做同样的事情,但我还没有找到 运行 Electron 应用程序完全独立于终端实例的方法...
您通过 nohup npm start &
启动了一个 Electron 应用程序,但是当关闭终端 window 时,Electron 应用程序也终止了(与预期相反)。
我可以重现该行为,但并非总是如此。在我大约 30% 的实验中,Electron 应用程序没有终止。我还没有找到这种不同行为的原因。
解决方法
以下解决方法会在不终止 Electron 应用程序的情况下关闭终端。在我的测试中,它每次都有效:
像以前一样启动 Electron 应用程序:nohup npm start &
通过发出 nohup kill $$ &
关闭 运行ning 终端
$$
给出了当前进程的id。
请注意 kill $$
不起作用。
如果您不一定需要从终端 运行,您也可以 create a desktop file to start the app.
让 pathname
成为节点应用程序位置的路径。
只需使用命令:
cd pathname && npm start && ^Z &
cd
to change directory to where we need to execute the terminal command.
&&
to mean there are other commands to be executed after this one.
npm start
to start npm app
^Z
to suspend the process running in the terminal, and hence disconnect the terminal part of node from the original app.
&
to mean that we don't want the terminal to wait for the command to execute.
现在我们可以关闭终端了,Electron 应用应该保持 运行...!
学分:
我正在寻找一种独立于终端本身的 运行 Electron 应用程序(npm start
命令)的方法。这意味着即使终端关闭,我也希望 Electron 应用程序保持 运行ning..
我不确定是否可以。
我已经尝试过 cd electron-directory-path && nohup npm start &
,但这虽然允许我将终端实例用于其他命令并防止在终端中弹出任何电子消息。但是,关闭终端仍然会杀死 Electron 应用程序。
甚至 cd electron-directory-path && npm start &
也做同样的事情,但我还没有找到 运行 Electron 应用程序完全独立于终端实例的方法...
您通过 nohup npm start &
启动了一个 Electron 应用程序,但是当关闭终端 window 时,Electron 应用程序也终止了(与预期相反)。
我可以重现该行为,但并非总是如此。在我大约 30% 的实验中,Electron 应用程序没有终止。我还没有找到这种不同行为的原因。
解决方法
以下解决方法会在不终止 Electron 应用程序的情况下关闭终端。在我的测试中,它每次都有效:
像以前一样启动 Electron 应用程序:
nohup npm start &
通过发出
关闭 运行ning 终端nohup kill $$ &
$$
给出了当前进程的id。 请注意kill $$
不起作用。
如果您不一定需要从终端 运行,您也可以 create a desktop file to start the app.
让 pathname
成为节点应用程序位置的路径。
只需使用命令:
cd pathname && npm start && ^Z &
cd
to change directory to where we need to execute the terminal command.&&
to mean there are other commands to be executed after this one.npm start
to start npm app^Z
to suspend the process running in the terminal, and hence disconnect the terminal part of node from the original app.&
to mean that we don't want the terminal to wait for the command to execute.
现在我们可以关闭终端了,Electron 应用应该保持 运行...!
学分: