prefacio
En el desarrollo diario y la administración de sistemas, a menudo nos encontramos con situaciones en las que necesitamos finalizar un proceso en un puerto específico. Este artículo presentará cómo utilizar un comando para finalizar el proceso del puerto especificado en los sistemas Linux y Windows, y también proporcionará ejemplos de scripts de Shell y scripts por lotes correspondientes para lograr operaciones más convenientes.
Solución en Linux:
En los sistemas Linux, puede utilizar kill
el comando para finalizar un proceso en un puerto específico. El siguiente es un ejemplo de un comando combinado con lsof
el comando, que encontrará 8080
el proceso del puerto especificado (por ejemplo) y lo eliminará: ( 注
: la siguiente operación raíz completa, operación no raíz, agregue sudo usted mismo)
kill -9 `lsof -ti:8080`
En este comando, lsof -ti:8080
se encontrará el ID del proceso que escucha en el puerto 8080
y luego se pasará al kill -9
comando para finalizar el proceso. Este método es simple y eficiente y se puede realizar con un solo comando.
Guión de shell:
Si desea encapsular esta operación en un script de shell para uso repetido, puede crear un kill-port.sh
archivo con el siguiente nombre:
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Usage: $0 <port>"
exit 1
fi
port=$1
kill -9 $(lsof -ti :$port)
Al ejecutar chmod +x kill-port.sh
el comando, el script recibe permiso de ejecución y luego ./kill-port.sh 8080
dicho comando se puede usar para finalizar el proceso del puerto especificado.
La operación de demostración es la siguiente:
A través del comando anterior verifique la ocupación del puerto 8080. lsof -i :8080
Aquí, LZ ingresa deliberadamente un parámetro adicional al usar el script param2
. La verificación en el script if
le indicará cómo utilizar el script. Después de finalizar el proceso, use el comando nuevamente lsof -i :8080
para verificar si el puerto 8080 está finalizado.
Solución en Windows:
En el sistema Windows, ábralo cmd
(preferiblemente ejecútelo como administrador), puede usar netstat
el comando para encontrar el ID del proceso correspondiente al puerto y luego usar taskkill
el comando para finalizar el proceso. A continuación se muestra un comando de ejemplo que combina los dos comandos para finalizar 8080
un proceso en el puerto:
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :8080') do taskkill /F /PID %%a
Guión por lotes:
Haga doble clic con el mouse para ejecutar el script, el usuario ingresa al puerto de proceso especificado, presiona Enter y espera tres segundos para cerrar cmd
la ventana automáticamente. Por ejemplo, para cerrar 9060
el puerto 步骤
: (1. Cree un archivo txt -> 2. Copie el siguiente contenido del script -> 3. Cambie el sufijo del archivo .bat
-> haga doble clic en el script para ejecutarlo). El contenido del guión es el siguiente:
@echo off
chcp 65001
set/p port=kill-port:
echo port : %port%
set pid=
set executableFile=
for /f "usebackq tokens=1-5" %%a in (`netstat -ano ^| findstr %port%`) do (
if [%%d] EQU [LISTENING] (
set pid=%%e
)
)
if "%pid%"=="" (
echo 未找到监听端口为 %port% 的进程,无需终止。
) else (
for /f "usebackq tokens=1-5" %%a in (`tasklist ^| findstr %pid%`) do (
set executableFile=%%a
)
echo 现在将终止进程:pid %pid%,可执行文件:%executableFile%
taskkill /f /pid %pid%
)
timeout /t 3 /nobreak > nul
chcp 65001
Configure el formato UTF-8 en el script actual para garantizar que los caracteres chinos no estén confusos, timeout
comando, para que se pueda ver la información del mensaje.
La operación de demostración es la siguiente:
-
成功终止操作显示如下
:
-
无需终止操作显示如下
:
Resumir:
A través de los métodos y ejemplos presentados en este artículo, puede finalizar fácilmente el proceso del puerto especificado en sistemas Windows y Linux, lo que mejora la eficiencia y conveniencia de las operaciones. Ya sea que ejecute un comando directamente en la línea de comando o use un script para encapsular la operación, puede administrar el proceso de manera más eficiente y garantizar el funcionamiento normal del sistema.