Нужно сделать команду быстрого вызова, используя xargs

Я всегда хочу убить идентификатор процесса, который прослушивает порт 3000. Поэтому в настоящее время я использую,

1.lsof -i tcp:3000

выдаст вывод как

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

, и я убью используя PID,
2. kill -9 6697

Я хочу создать программу bash, которая выполняет этот процесс автоматически.

Я пытался использовать xargs для получения PID вывода первой команды, но не получилось.

1
задан 4 October 2011 в 20:44

2 ответа

Вот оно (без xargs):

lsof -i tcp:8080 | while read cmd pid rest; do ((pid)) && kill -9 $pid; done
0
ответ дан 4 October 2011 в 20:44

Во-первых, вы хотите, чтобы опция -t имела значение lsof, которое генерирует только pids. Вы также можете указать kill pids:

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

Если вы делаете это много, создайте псевдоним

alias kill3000='kill -9 $(lsof -ti tcp:3000)'
0
ответ дан 4 October 2011 в 20:44

Другие вопросы по тегам:

Похожие вопросы: