【问题标题】:can't end node.js application through ctrl-c on MAC无法通过 MAC 上的 ctrl-c 结束 node.js 应用程序
【发布时间】:2015-02-24 20:30:25
【问题描述】:

我曾经是 node.js 用户,现在这是我第一次在 mac 上工作 node.js,在终端中我尝试通过 ctrl-c 结束端口 8080 上的 node.js 应用程序服务器,似乎应用程序停止了,但是当我再次启动应用程序时,错误'error:Error:listen EADDRINUSE'抛出。

通过使用 sudo lsof -nP -iTCP:8080-sTCP:LISTEN,我发现 node.js 服务器实际上并没有通过使用 ctrl-c 关闭。现在我必须通过终端命令 sudo killall -KILL node 强制关闭 node.js 进程。

任何人都可以在 mac 上体验同样的事情

【问题讨论】:

    标签: node.js macos


    【解决方案1】:

    套接字也需要在退出时关闭。

    尝试将下一个代码添加到您的节点应用程序:

    process.on('SIGINT', function() {
      socket.close();
      process.exit();
    });
    

    【讨论】:

    • 我做到了,但还是一样,当我按下 ctrl + z 时,程序结束并且似乎没有运行到这部分代码,因为我已经将控制台输出嵌入到 SIGINT 回调函数中,什么都没有输出
    • Ctrl+Z 不会结束程序,而是暂停
    • 当我在 linux 或 windows 中时,这就是我结束程序的方式。那么什么可以让我在 mac env 中结束它?
    • Ctrl+C 是终止。 Ctrl+Z 是暂停。 (一般是把应用放到后台,以后可以恢复)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多