📜  在端口杀死应用程序 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:23:35.777000             🧑  作者: Mango

在端口杀死应用程序 - Shell/Bash

在系统管理员或开发人员的日常工作中,经常需要控制运行在不同端口的多个应用程序。有时候需要关闭或重启一个具体端口上运行的应用程序。本文将介绍将如何使用Shell/Bash脚本来在指定端口上杀死或重启应用程序。

查找端口上运行的程序

在杀死或重启应用程序之前,我们需要先找出运行在哪个端口上。使用以下命令可以找到应用程序的端口:

lsof -i :<port>

这个命令会返回运行在指定端口上的程序的PID以及其他信息。例如,如果我们要查找运行在3000端口上的程序,可以执行以下命令:

lsof -i :3000

输出可能类似于以下内容:

COMMAND   PID    USER    FD   TYPE  DEVICE SIZE/OFF NODE NAME
node    12403 johndoe   11u  IPv6 1962547      0t0  TCP *:hbci (LISTEN)

在这个例子中,node是运行的程序,12403是它的PID,端口是:hbci

杀死端口上运行的程序

一旦我们找到要关闭的程序的PID,就可以使用kill命令来停止它。执行以下命令来停止运行在3000端口上的应用程序:

kill $(lsof -t -i:3000)

这个命令将调用lsof命令找到运行在3000端口上的程序的PID,然后使用kill命令杀死该程序。

重启端口上运行的程序

要重新启动运行在某个端口上的应用程序,我们首先需要停止运行的程序,然后再启动它。我们可以使用之前介绍的kill命令来停止程序,然后使用重启命令来启动它,例如在 Node.js 应用中使用以下命令重新启动:

kill $(lsof -t -i:3000) && node app.js

这个命令将首先通过lsof和kill命从3000端口上停止运行的程序,然后使用启动命令node app.js重新启动应用程序。

总结

Shell/Bash脚本使我们可以轻松地管理运行在不同端口上的多个应用程序。我们可以使用lsof命令来查找端口上的应用程序,然后使用kill命令停止它们,用其他命令(例如 node)重新启动它们。