📅  最后修改于: 2023-12-03 15:26:33.387000             🧑  作者: Mango
在开发和运维中,我们常常需要杀死在某个端口上运行的进程。在 Linux 和 Unix 系统上,我们可以使用 Shell-Bash 脚本来轻松实现这个功能。
lsof 命令用于列出 Linux/Unix 系统中打开的文件。我们可以使用该命令来查找在端口 80 上运行的进程,并杀死它。
以下是用 Shell-Bash 实现的代码片段:
#!/bin/bash
# 查找在端口 80 上运行的进程并杀死它
# 查找进程 ID
PID=$(sudo lsof -t -i:80)
# 如果进程存在,则杀死它
if [ -n "$PID" ]
then
sudo kill -9 $PID
echo "Process with PID $PID killed."
else
echo "No process found running on port 80."
fi
上述脚本首先使用 lsof 命令查找在端口 80 上运行的进程的进程 ID,并将其存储在变量 $PID
中。随后,如果进程存在,则使用 kill 命令杀死它。
fuser 命令用于查找 Linux/Unix 系统中使用指定文件或端口的进程。与 lsof 相比,fuser 更加快速。以下是用 Shell-Bash 实现的代码片段:
#!/bin/bash
# 查找在端口 80 上运行的进程并杀死它
# 查找进程 ID
PID=$(sudo fuser -n tcp -k 80)
# 如果进程存在,则杀死它
if [ -n "$PID" ]
then
echo "Process with PID $PID killed."
else
echo "No process found running on port 80."
fi
上述脚本使用 fuser 命令查找在端口 80 上运行的进程的进程 ID,并将其存储在变量 $PID
中。随后,如果进程存在,则使用 kill 命令杀死它。
在本文中,我们介绍了两种使用 Shell-Bash 脚本杀死在端口 80 上运行的进程的方法:一种是使用 lsof 命令,另一种是使用 fuser 命令。您可以根据自己的需求选择适合的方法。