【问题标题】:How to stop Node.js server?如何停止 Node.js 服务器?
【发布时间】:2017-06-14 09:38:36
【问题描述】:

我刚刚在我的 DigitalOcean 服务器上设置了 MEAN 堆栈。我让测试应用程序运行良好,但是现在当我从 DigitalOcean 打开命令行时,它只显示信息:GET /modules/etc... 而我输入的部分是空白的。如何停止服务器并将其恢复到原来的位置以便我可以访问文件夹等?

简单地做 CTRL+C 并不会停止服务器的运行,这是我需要做的。

【问题讨论】:

标签: node.js mean-stack digital-ocean


【解决方案1】:

首先:CTRL+Z 将终止执行。稍后,为了终止 PID(processID),请执行以下操作。

杀死任何processId包括localserver的通用方法:

参考:https://stackoverflow.com/a/57536823/8119511

对于这种情况:

$:lsof -i tcp:<PORT>

它会为您提供与端口关联的 PID(processId):

$:kill -9 <process-id>

同样,您可以运行服务器。

【讨论】:

  • 额外的维护负担。为什么节点没有一个停止/启动脚本,每个其他 http 服务器都超出了我的想象。击败并发性就这么多
【解决方案2】:

您可以通过终止进程来停止服务器。在 Windows 中,运行 CMD 并输入 taskkill /F /IM node.exe 这将杀死(停止)所有 Node.js 进程。然后你可以重新启动它。

【讨论】:

    【解决方案3】:

    你在用什么?您是否在命令提示符或终端中尝试了 control+c?

    编辑:转到您正在使用的 config.js 文件或服务器文件,以指定您要使用的端口。如果你在 localhost 上进行测试,请在浏览器中输入 localhost:port

    var http = require('http'); 
    var url = require('url'); 
    http.createServer(function (req, res) { 
     console.log("Request: " + req.method + " to " + req.url); 
     res.writeHead(200, "OK"); 
     res.write("<h1>Hello</h1>Node.js is working"); 
     res.end(); 
    }).listen(8080); 
    console.log("Ready on port 8080");
    

    【讨论】:

    • 这行得通,但现在我如何停止服务器运行,以便其他应用程序可以使用该端口?
    • 在您的 config.js 中您需要更改端口。
    【解决方案4】:

    只需打开任务管理器。 在 processes 中搜索 node.js 进程。 然后结束该过程并尝试它会起作用。

    【讨论】:

    • 如果他在linux系统上并通过SSH访问,从命令行打开任务管理器实际上不是一个解决方案
    【解决方案5】:

    通过命令行或 BASH 脚本以编程方式终止程序(例如 nodehttp-server)。

    [victoria@victoria ~]$ pgrep -a node     ## pgrep --help
      1315229 node /usr/bin/http-server -p 8080 /mnt/Vancouver/
    
    [victoria@victoria ~]$ pgrep -l -f node
      1315229 node
    
    [victoria@victoria ~]$ pgrep -l -f http-server
      1315229 node
    
    [victoria@victoria ~]$ pgrep -f http-server
      1336598
    
    [victoria@victoria ~]$ a=$(pgrep -f node)    ## or: a=$(pgrep -f http-server)
    
    [victoria@victoria ~]$ echo $a
      1315229
    
    [victoria@victoria ~]$ kill -9 $a
    
    [victoria@victoria ~]$ pgrep -a node
    [victoria@victoria ~]$
    
    ## one-liner:  a=$(pgrep -f node); kill -9 $a
    

    【讨论】:

      【解决方案6】:

      好吧,您可以在“输出”控制台上简单地停止它:只需右键单击并选择“停止代码运行”选项。

      【讨论】:

        【解决方案7】:

        CTRL+C 只能在使用操作系统时使用
        windows & 在代码中使用:

        app.close();
        

        如果你有这样的

        let app = require('express'); // or any frameworks 
        

        【讨论】:

          猜你喜欢
          • 2021-12-07
          • 1970-01-01
          • 2020-07-01
          • 1970-01-01
          • 2023-04-09
          • 2019-04-25
          • 1970-01-01
          • 2014-12-15
          相关资源
          最近更新 更多