mirror of
https://github.com/MCSManager/MCSManager.git
synced 2025-02-17 15:59:41 +08:00
新增 - 关闭程序时自动关闭所有服务端
This commit is contained in:
parent
8efb64d92c
commit
cd00fec869
18
app.js
18
app.js
@ -274,21 +274,7 @@ app.use('/fs', require('./onlinefs/controller/function'));
|
||||
|
||||
})();
|
||||
|
||||
//退出事件
|
||||
let _endFlag = false;
|
||||
process.on('SIGINT', function () {
|
||||
if (_endFlag) return;
|
||||
_endFlag = true;
|
||||
MCSERVER.infoLog('PROCESS', '程序正在结束,请稍等...'.red);
|
||||
|
||||
//保存
|
||||
counter.save();
|
||||
ServerModel.ServerManager().saveAllMinecraftServer();
|
||||
UserModel.userCenter().saveAllUser();
|
||||
|
||||
|
||||
setTimeout(() => {
|
||||
MCSERVER.infoLog('PROCESS', 'EXIT...'.red);
|
||||
process.exit(0);
|
||||
}, 1000)
|
||||
});
|
||||
//程序退出信号处理
|
||||
require('./core/procexit');
|
37
core/procexit.js
Normal file
37
core/procexit.js
Normal file
@ -0,0 +1,37 @@
|
||||
// MCserver Manger 程序退出
|
||||
const serverModel = require('../model/ServerModel');
|
||||
const userModel = require('../model/UserModel');
|
||||
const counter = require('./counter');
|
||||
|
||||
let _endFlag = false;
|
||||
process.on('SIGINT', function () {
|
||||
if (_endFlag) return;
|
||||
_endFlag = true;
|
||||
MCSERVER.infoLog('PROCESS', '控制面板正在结束与回收资源,请稍等...'.red);
|
||||
|
||||
//保存
|
||||
counter.save();
|
||||
serverModel.ServerManager().saveAllMinecraftServer();
|
||||
userModel.userCenter().saveAllUser();
|
||||
|
||||
//关闭所有服务器
|
||||
let servers = serverModel.ServerManager().getServerObjects();
|
||||
for (let k in servers) {
|
||||
let server = servers[k];
|
||||
try {
|
||||
//最好使用指令来关闭,这样标准输出会截取到关闭输出,而不是用 server.stop();
|
||||
server.send('stop');
|
||||
server.send('end');
|
||||
server.send('exit');
|
||||
} catch (serverErr) {
|
||||
//忽略
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
MCSERVER.infoLog('PROCESS', '进程结束流程逻辑执行完毕.'.red);
|
||||
MCSERVER.infoLog('PROCESS', 'EXIT...'.red);
|
||||
process.exit(0);
|
||||
}, 4000)
|
||||
});
|
Loading…
Reference in New Issue
Block a user