Как убить процесс на порту в Ubuntu - PullRequest
368 голосов
/ 19 февраля 2012

Я пытаюсь убить процесс в командной строке для определенного порта в Ubuntu.

Если я запускаю эту команду, я получаю порт:

sudo lsof -t -i:9001

, так что ...Теперь я хочу запустить:

sudo kill 'sudo lsof -t -i:9001'

Я получаю это сообщение об ошибке:

ERROR: garbage process ID "lsof -t -i:9001".
Usage:
  kill pid ...              Send SIGTERM to every process listed.
  kill signal pid ...       Send a signal to every process listed.
  kill -s signal pid ...    Send a signal to every process listed.
  kill -l                   List all signal names.
  kill -L                   List all signal names in a nice table.
  kill -l signal            Convert between signal numbers and names.

Я также пытался sudo kill 'lsof -t -i:9001'

Ответы [ 21 ]

651 голосов
/ 19 февраля 2012

Вы хотите использовать тик не обычный тик:

sudo kill `sudo lsof -t -i:9001`

Если это не сработает, вы также можете использовать $() для интерполяции команд:

sudo kill $(sudo lsof -t -i:9001)
201 голосов
/ 27 октября 2013

вы можете использовать

fuser -n tcp -k 9001 

подробнее в википедии

57 голосов
/ 01 мая 2015

ДЛЯ UBUNTU 1- Найдите приложение / процесс, использующий профи, введите:

sudo netstat -lpn |grep :8080

и нажмите Enter.

Вы получите вывод, аналогичный этому

tcp6       0      0 :::8080                 :::*                    LISTEN      6782/java

2- У меня есть идентификатор процесса, который равен 6782, теперь этот процесс использует порт 8080.

3- Завершить процесс, введите: kill 6782

kill 6782
30 голосов
/ 15 мая 2014

Есть некоторые процессы, которые не отображаются с помощью обычной команды netstat, поэтому вы должны проверить это с помощью sudo.

Do sudo netstat -lpn |grep :8080.Процесс, запущенный системой, не показывает PID, чтобы получить PID этого процесса, вам нужно запустить его, используя sudo

, а затем завершить процесс, используя порт 8080.Возможно, вам также придется использовать sudo здесь.Таким образом, чтобы убить этот процесс, используйте sudo kill -9 PID

28 голосов
/ 29 сентября 2017

Лучший способ убить порт в терминале Ubuntu - fuser -k 9001/tcp

17 голосов
/ 31 октября 2013

Использование killport Команда:

sh killport 9001 

Для загрузки оболочки вы можете использовать wget:

wget https://cdn.rawgit.com/abdennour/miscs.sh/e0aac343/killport
14 голосов
/ 04 июля 2016

Вы также можете использовать fuser для этого (по умолчанию отправляет SIGKILL): sudo fuser -k 9001/tcp

10 голосов
/ 09 января 2019

Чтобы убить службу порта в ubuntu, введите указанную ниже команду в терминале

В терминале:

sudo fuser -k port/tcp
sudo fuser -k 8001/tcp
9 голосов
/ 17 августа 2018

Чтобы сначала убить процесс, основанный на порте, мы должны найти соответствующий pid для данного порта и убить, используя этот pid,

В моем случае я хотел получить pid (идентификатор процесса) порта 3000:

netstat -ltnp | grep -w '3000'

затем найдите pid, который слушает tcp

tcp6       0      0 :::3000                 :::*                    LISTEN      29972/node  

, вы получите pid 29972

Чтобы убить этот пид, используйте нижекоманда

kill -9 29972

псевдокод для процесса уничтожения на основе порта

 netstat -ltnp | grep -w 'PORT'

и

kill -9 PID
7 голосов
/ 24 мая 2018

Чтобы уничтожить процесс , работающий на номер порта 9001

sudo kill -9 $(sudo lsof -t -i:9001)


lsof   - list of files(Also used for to list related processes)

-t     - show only process ID

-i     - show only internet connections related process

:9001  - show only processes in this port number

kill   - command to kill the process

-9     - forcefully

sudo   - command to ask admin privilege(user id and password).

, вы можете посетить мой блог

...