📅  最后修改于: 2023-12-03 15:23:35.777000             🧑  作者: Mango
在系统管理员或开发人员的日常工作中,经常需要控制运行在不同端口的多个应用程序。有时候需要关闭或重启一个具体端口上运行的应用程序。本文将介绍将如何使用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)重新启动它们。