我正在创建一个 node.js 项目并将其上传到我的窗口服务器,以便为移动应用程序提供 api 服务。当我打开命令提示符并输入
node app.js
它运行正确,但是当我关闭命令提示符时,我的 node.js 服务器停止运行。当我关闭推荐提示时如何使它仍然运行?
Ubuntu上的示例我使用命令
nohup
如何在窗口上这样做
我正在创建一个 node.js 项目并将其上传到我的窗口服务器,以便为移动应用程序提供 api 服务。当我打开命令提示符并输入
node app.js
它运行正确,但是当我关闭命令提示符时,我的 node.js 服务器停止运行。当我关闭推荐提示时如何使它仍然运行?
Ubuntu上的示例我使用命令
nohup
如何在窗口上这样做
节点蒙#ftw。在 Windows 上,Forever 并没有真正观察文件,而是随便观察它们,而 pm2 每次加载页面时都会重新启动服务器。
这些工具中的每一个都类似地工作,并且每个安装都与接受的答案一样。例如:
npm install nodemon -g
这会在全局范围内安装 nodemon,并且要使用它,您只需导航到您的项目文件夹并输入:
nodemon
(假设您的项目有一个 app.js 文件)。您可以添加 -w 开关,就像在 Forever 和 pm2 中一样,但是如果您只想查看所有文件,则可以省略它。要使用 Forever 在后台运行 nodemon,您可以运行以下命令:
forever nodemon --exitcrash
Nodemon 适合开发,尤其是在 Windows 上,而 Forever 和 pm2 更适合于 Linux 上的生产环境。
这是一个更简单的答案,无需像上面描述的其他两个答案那样添加任何库或开销。要将 Node.js 应用程序作为无窗口启动程序在后台运行(这类似于 Linux 中的“nohup”),请修改此模板以适应并将其复制到 .VBS 脚本文件中。然后将该文件复制到您的开始菜单启动文件夹(对于所有用户,这将是 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup),它将自动运行。您在 Visual Basic 中使用的技术是 (1) 通过首先更改 shell 对象的工作目录来准备运行 Node.js 应用程序和 (2) 通过以下方式通知 shell 在隐藏窗口中运行 Node.js 应用程序在运行函数后立即添加一个“, 0”:
Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.CurrentDirectory = "C:\path-to-your-node-js-app\"
objShell.Run("""node"" your-app.js"), 0
Set objShell = Nothing
参考:
https://keestalkstech.com/2016/07/start-nodejs-app-windowless-windows/ https://devblogs.microsoft.com/scripting/how-can-i-change-the-working-folder-of-一个脚本/
不,你不能。
即使你制作了一个 GUI 程序,你也需要通过控制台运行它。
一旦你关闭命令提示符。您的服务只会在那一刻停止/终止。因为节点在运行 :http.createServer().listen(port)
或app.listen(port)
. 所以这使得它在本质上是独立的。
因此,一旦您关闭正在运行的服务器上的命令提示符,所有服务都会在那个时刻停止。