最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何重新启动Node.js子进程

IT培训 admin 6浏览 0评论

如何重新启动Node.js子进程

我正试图以child_process的名义重新启动某个serverSpawnProcess。我可以让它停下来,但我不能再开始了。

serverSpawnProcess.stdin.write('stop\n');
serverSpawnProcess = null;
setTimeout(function() {
  serverSpawnProcess = spawn('java', [
    '-Xmx512M',
    '-Xms512M',
    '-jar',
    'server_files/minecraft_server.jar',
    'nogui'
  ]);
  response.send('r');
}, 10000);

是我以为我会去做它,但它只会停止服务器,它不会再次产生它。 Node.js 5.3.0如果有帮助的话。

编辑为了其他任何寻找如何做到这一点的人,我最终将spawn放入一个函数中,我称之为如此

serverSpawnProcess.on("close", function() {
    response.send('r2');
    // Wait for process to exit, then run again

    startServer();
 });
回答如下:

所以我的猜测是在你的Minecraft服务器仍在运行10秒后超时(根据文档它将一些数据保存到磁盘和东西)并且当你尝试运行另一个实例时由于端口仍然被使用而失败。

试试这样:

serverSpawnProcess.stdin.write('stop\n');
serverSpawnProcess.on("close", function() {
    // Wait for process to exit, then run again

    serverSpawnProcess = spawn('java', [
        '-Xmx512M',
        '-Xms512M',
        '-jar',
        'server_files/minecraft_server.jar',
        'nogui'
    ]);
});

同样正如https://stackoverflow/users/1139700/ross建议的那样,为错误事件添加一个监听器,这样你就可以确切地知道你的问题是什么。

serverSpawnProcess.on("error", function(err) {
    // ugh, something went wrong
    console.log("Server error:", err);
});

如何重新启动Node.js子进程

我正试图以child_process的名义重新启动某个serverSpawnProcess。我可以让它停下来,但我不能再开始了。

serverSpawnProcess.stdin.write('stop\n');
serverSpawnProcess = null;
setTimeout(function() {
  serverSpawnProcess = spawn('java', [
    '-Xmx512M',
    '-Xms512M',
    '-jar',
    'server_files/minecraft_server.jar',
    'nogui'
  ]);
  response.send('r');
}, 10000);

是我以为我会去做它,但它只会停止服务器,它不会再次产生它。 Node.js 5.3.0如果有帮助的话。

编辑为了其他任何寻找如何做到这一点的人,我最终将spawn放入一个函数中,我称之为如此

serverSpawnProcess.on("close", function() {
    response.send('r2');
    // Wait for process to exit, then run again

    startServer();
 });
回答如下:

所以我的猜测是在你的Minecraft服务器仍在运行10秒后超时(根据文档它将一些数据保存到磁盘和东西)并且当你尝试运行另一个实例时由于端口仍然被使用而失败。

试试这样:

serverSpawnProcess.stdin.write('stop\n');
serverSpawnProcess.on("close", function() {
    // Wait for process to exit, then run again

    serverSpawnProcess = spawn('java', [
        '-Xmx512M',
        '-Xms512M',
        '-jar',
        'server_files/minecraft_server.jar',
        'nogui'
    ]);
});

同样正如https://stackoverflow/users/1139700/ross建议的那样,为错误事件添加一个监听器,这样你就可以确切地知道你的问题是什么。

serverSpawnProcess.on("error", function(err) {
    // ugh, something went wrong
    console.log("Server error:", err);
});

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论