我看过无数关于如何使用 NSSM ( http://nssm.cc/ ) 来启动 NodeJS 进程的文章。
所以,我有以下简单的 NodeJS 文件:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end('<p>Hello World</p>');
}).listen(8000);
console.log('Server running on http://localhost:8000/');
我正在使用此命令将 NodeJS 文件安装为 Windows 服务:
"C:\Program Files\SimpleNode\nssm.exe" 安装 SimpleNode "C:\Program Files\SimpleNode\node.exe" "C:\Program Files\SimpleNode\simple.js"
该服务已安装。当我启动它时,我收到一条错误消息,服务处于暂停状态,我在事件查看器中看到以下错误:
GetProcessTimes() 失败:句柄无效。
这应该很简单。我尝试使用具有本地管理员权限的域帐户。我尝试了几个不同的端口号。当我从命令行启动该应用程序时,它确实可以正常工作。
更多注意事项:这是在 64 位 Windows 2008 R2 服务器上运行的。我确保我正在运行 NSSM 和 Node.js 的所有 64 位可执行文件。我也尝试过对两者都使用 32 位可执行文件。
谁能告诉我我错过了什么?其他人可以复制这个问题吗?