📅  最后修改于: 2023-12-03 14:53:13.402000             🧑  作者: Mango
使用Shell或Bash脚本可以轻松监听特定端口运行的进程并杀死它们。在本教程中,我们将学习如何编写脚本来检测并终止 8080 端口上运行的进程。
首先,我们需要使用lsof命令来确定当前运行在 8080 端口上的进程。以下是查找并显示该端口上进程的命令:
lsof -i :8080
如果该端口上有运行的进程,该命令将返回类似以下的输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 12345 user 20u IPv6 12345 0t0 TCP *:8080 (LISTEN)
从上一步得到的输出中提取进程ID(PID)。
使用awk命令来提取PID:
PID=$(lsof -t -i :8080)
注意,-t
选项仅返回PID而不输出其他信息,并将其赋值给PID
变量。
有了PID,我们现在可以使用kill命令来终止该进程。
kill $PID
将PID插入到kill命令中,然后运行脚本,进程将被终止。
以下是完整的Shell/Bash脚本示例:
#!/bin/bash
PORT=8080
PID=$(lsof -t -i :$PORT)
if [ -z "$PID" ]; then
echo "No process is currently running on port $PORT."
else
echo "Process with PID $PID is running on port $PORT. Killing the process..."
kill $PID
echo "Process terminated."
fi
此脚本在 8080 端口上查找运行的进程,并如果找到的话,终止该进程。
请注意,如果在该端口上没有运行的进程,脚本将输出"No process is currently running on port 8080."消息。
要运行脚本,请执行以下命令:
bash script.sh
确保将script.sh
替换为实际的脚本文件名。
通过本教程,您将学会如何使用Shell/Bash脚本来监听特定端口上运行的进程,并终止它们。您可以根据自己的需求修改脚本,并将其应用到实际场景中。