【发布时间】:2015-10-09 15:23:55
【问题描述】:
我制作了一个简单的回显服务器,我想在 Windows 下作为服务运行。 这是代码
var fs=require('fs');
var net = require('net');
var server = net.createServer(function(c) { //'connection' listener
console.log('client connected');
c.on('end', function() {
console.log('client disconnected');
});
c.write('hello\r\n');
c.pipe(c);
});
server.listen(8124, function() { //'listening' listener
console.log('server bound');
});
var fd=fs.openSync('log.txt', 'a');
fs.writeSync(fd, 'START\r\n');
fs.closeSync(fd);
process.on('SIGINT', function (par){
var fd=fs.openSync('log.txt', 'a');
fs.writeSync(fd, 'SIGINT ('+par+")\r\n");
fs.closeSync(fd);
process.exit(1);
});
process.on('exit', function (code){
var fd=fs.openSync('log.txt', 'a');
fs.writeSync(fd, 'EXIT ('+code+")\r\n");
fs.closeSync(fd);
});
接下来我用 JXcore 编译如下:
jx package echoserver.js "echoserver" -native
然后可执行文件从控制台或资源管理器中双击运行并完成它的工作!好!
现在,我用 sc windows 工具创建一个服务
sc create echosvr full_path_to\echoserver.exe
现在 echosvr 已正确列在 windows 任务管理器的服务选项卡中。
现在不好了:我尝试以多种方式启动服务,但我总是收到一条消息,告诉我服务没有及时响应启动或控制请求。
我想念什么? 有什么建议吗?
【问题讨论】:
-
我假设将进程用作 Windows 服务需要该应用程序中的附加功能。
-
我假设相同...我想我应该尝试一些像nssm这样的包装器。它似乎可以满足我的需要。我会试一试,然后我会发布结果