我有基于1到1个客户端和服务器nodejs的应用程序。 nodejs在Linux(英特尔Edison)上运行。我想要做的是让Linux服务器在套接字断开时自动重启。这可能吗?
这是我的简单node-socketIO服务器
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
socket.on('chat message', function(msg){
console.log(msg)
io.emit('chat message', msg);
});
socket.on('disconnect', function(){
//how to programmatically reboot?
console.log('user disconnected');
});
});
http.listen(3000, function(){
console.log('listening on *:3000 yeah');
});
答案 0 :(得分:0)
你试过reboot(npm)
吗?npm install reboot
调用sync()然后重启:
require('reboot').reboot();
重新启动而不同步():
require('reboot').rebootImmediately();
还设置权限: 权限
如果要在非超级用户下运行节点进程,请务必授予节点权限以重新启动系统:
sudo setcap CAP_SYS_BOOT=+ep /usr/local/bin/node