Necesita crear un comando de acceso directo usando xargs

Necesita crear un comando de acceso directo usando xargs

Siempre quiero eliminar una identificación de proceso que escucha en el puerto 3000. Así que actualmente estoy usando,

1.lsof -i tcp:3000

dará salida como,

COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
ruby    6697   xxxx   5u  IPv4 251982      0t0  TCP *:3000 (LISTEN)

y mataré el PID usando,
2.kill -9 6697

Quiero crear un programa bash que realice este proceso automáticamente.

Intenté usar xargs para obtener el PID de la salida del primer comando pero fallé.

Respuesta1

Primero, desea la -topción lsof, que solo emite pids. También puedes darle a Kill una lista de pids, así que:

kill -9 $(lsof -ti tcp:3000)

Si haces esto con frecuencia, crea un alias.

alias kill3000='kill -9 $(lsof -ti tcp:3000)'

Respuesta2

Aquí está (sin xargs):

lsof -i tcp:8080 | while read cmd pid rest; do ((pid)) && kill -9 $pid; done

información relacionada