我正在尝试通过 Windows 上的 yarn 终止一个开发服务器设置。当我按Ctrl+C退出命令提示符时,当我返回时localhost:8080
它并没有停止。我该如何终止该进程?
答案1
您可以追踪在端口 8080 上运行的进程并将其终止。
对于 macOS 或 Linux:
sudo lsof -iTCP:8080 -sTCP:LISTEN
你应该得到类似这样的输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
yarn 12017 user 12u IPv6 1876683 0t0 TCP *:8080 (LISTEN)
现在您有了进程 ID (PID),您可以终止该进程。首先尝试:
kill 12017(whatever the PID is)
如果这不起作用,请尝试:
kill -9 12017
对于 Windows:
netstat -ano | findstr :8080 (the port number)
这应该会给出要终止的进程。然后您可以运行:
taskkill /F /PID 12017(or whatever the process ID is)
答案2
如果你从以下位置安装 ProcessExplorer系统内部,然后就可以看到进程树。
在 ProcessExplorer 中,单击目标视图按钮,然后单击启动 webbrowser 的 cmd 提示符。然后 ProcessExplorer 将跳转到其列表中的该 cmd 提示符。如果进程视图尚未按父子关系进行线程化,则按 Ctrl-T 几次直到它完成。然后您应该能够看到 web 服务器。选择它,然后右键单击它。选择“Kill Process Tree”以强制终止 web 服务器。
SystemInternals 也有pskill
。您可以使用pskill -t "MyWebServer"
来终止所有进程及其子进程,这些进程被称为MyWebServer
。
答案3
只需一条命令:
kill -INT $(lsof -t -i :8080)
或者更一般地:
kill -INT $(lsof -t -i :PORT_NUMBER)
补充笔记:
$()
叫做 ”命令替换“
答案4
除非您要终止的进程是在启动服务器时启动的进程,否则重新启动相关计算机可能会有效。这可能是最后的选择,因为会丢失计算机执行的所有其他未保存的操作,并且重新启动需要时间,但这也是为什么许多 IT 专业人员在开始对用户机器进行故障排除时会问“您是否尝试过关闭计算机然后再打开?”的原因。