【问题标题】:How to kill the port node env is using如何杀死端口节点 env 正在使用
【发布时间】:2019-03-22 08:04:11
【问题描述】:

我正在协作部署使用 sudo 并通过 ssh 访问 aws ec2 实例。

应用程序启动并抛出错误

Error: listen EADDRINUSE :::4000

如果我这样做:

sudo fuser 4000/tcp

我明白了:

4000/tcp:             1669

如果我这样做:

sudo fuser -i -k 4000/tcp

我明白了:

4000/tcp:             1669 Kill process 1669 ? (y/N)

如果我这样做:

y

它不会杀死端口。我当然也停止了该应用程序。


我没有 netstat。

这是具有root访问权限的特权吗?我会尝试更改端口号,但现在没有访问权限。

还有什么我可以尝试的吗?

谢谢

【问题讨论】:

    标签: linux amazon-ec2 port


    【解决方案1】:

    您可以使用 kill 和 lsof 的组合来执行此操作。

    sudo kill -9 $(sudo lsof -t -i:4000)

    这告诉操作系统使用端口 4000 终止进程。

    【讨论】:

    • 如果我执行上述命令然后运行 ​​lsof -i:4000 它输出端口仍在运行 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node\x20/ 21387 pavlos 19u IPv6 102232168 0t0 TCP *:4000 (LISTEN)
    • 现在,当我执行sudo kill -9 PID_NUM 时,它只会找到另一个要打开的 PID。这太疯狂了。
    • 有什么想法@Craig?
    • @godhar 什么操作系统,您是否使用类似forever 的方法来保持进程正常运行? ls 命令应该输出使用该端口的进程的 pid,如果它在被杀死时重新打开,你是如何启动该进程的?
    • 原来其他用户一直在 linux 机器上运行该应用程序。我试图杀死该进程,然后它必须找到另一个 PID。有趣的是,解决方案通常是最明显的解决方案。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 2018-01-06
    • 2011-04-26
    • 1970-01-01
    • 2014-09-09
    相关资源
    最近更新 更多