Как убить процесс на порту в Ubuntu

306

Я пытаюсь убить proccess в командной строке для определенного порта в 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'

  • 3
    К вашему сведению, на вопросы об Ubuntu больше шансов получить ответ в части Ubuntu сети StackExchange (StackOverflow): askubuntu.com
Теги:
port
kill

20 ответов

494
Лучший ответ

Вы хотите использовать backtick not regular tick:

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

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

sudo kill $(sudo lsof -t -i:9001)
  • 27
    Вы забыли добавить опцию сигнала. Следует читать: sudo kill -9 $(sudo lsof -t -i:9001)
  • 5
    @FrancescoGramano: вы не хотите использовать -9 без необходимости.
Показать ещё 5 комментариев
169

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

fuser -n tcp -k 9001 

подробнее см. в Википедии

  • 0
    Разве это не должно быть 9001 вместо 900?
  • 1
    Если не root: sudo fuser -n tcp -k 9001
Показать ещё 2 комментария
53

ДЛЯ УБЮНТУ 1- Найдите, какое приложение/процесс использует pro, введите:

sudo netstat -lpn |grep :8080

и нажмите Enter.

Вы получите результат, похожий на этот

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

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

3- Убейте процесс, введите: kill 6782

kill 6782
  • 3
    Короткий и четкий ответ
  • 1
    Работал отлично
28

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

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

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

19

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

  • 1
    спасибо, у меня сработало
  • 1
    работал на меня, спасибо
Показать ещё 2 комментария
16

Используйте killport команда:

sh killport 9001 

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

wget https://cdn.rawgit.com/abdennour/miscs.sh/e0aac343/killport
  • 1
    Это не работает всегда
  • 1
    если это не работает, это означает, что целевой порт уже закрыт
13

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

8

Используйте это:

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

Чтобы убить процесс, работающий на порту номер 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).

для большего вы можете посетить мой блог

5

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

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

netstat -ltnp | grep -w '3000'

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

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

вы получите пид 29972

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

kill -9 26493

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

 netstat -ltnp | grep -w 'PORT'

а также

kill -9 PID
4

Убить PORT:

sudo важно показать идентификатор процесса.

$ sudo netstat -antlp | grep 45136
tcp      0      0 0.0.0.0:45136         0.0.0.0:*        LISTEN           **-** 

$ kill -9 45136
3

Используйте команду

 netstat -plten |grep java

используется grep java, поскольку tomcat использует java как свои процессы.

Он покажет список процессов с номером порта и идентификатором процесса

tcp6       0      0 :::8080                 :::*                    LISTEN      
1000       30070621    16085/java

число перед /java является идентификатором процесса. Теперь используйте команду kill, чтобы убить процесс

kill -9 16085

-9 подразумевает, что процесс будет убит принудительно.

3

Попробуйте следующее:

lsof -i :port

or 

sudo kill $(sudo lsof -t -i:8000)

or

kill -9 <pid>

or 

sh killport 8000
  • 0
    Я на Ubuntu 17 и kill -9 <pid> отлично сработал для меня!
3

Используйте это для процесса убийства, который запущен на номере порта "9001"

 kill $(lsof -t -i:9001)
  • 0
    Избыточный с другими примерами, включая принятый ответ.
1

Его два шага процесса:

  1. Знать идентификатор процесса на порту нет. 8080 (может быть любым)
  2. Убить процесс с этим идентификатором 8689 (может быть другим)

    fuser -n tcp 8080
    
    #o/p 8080/tcp    8689
    
    kill -9 8689
    
1
sudo kill `sudo lsof -t -i:9001`

вам не нужно добавлять опцию сигнала -9

0

Там много обуви, чтобы примерить. Полезно.

0

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

В терминале:

sudo fuser -k port/tcp
sudo fuser -k 8001/tcp
  • 1
    Это просто одна команда, и она отлично работает :)
  • 0
    Этот простой делает отлично.
0

вы можете работать с помощью узла

npm install freethenport -g

затем

node freethenport 9001
0

sudo kill $ (sudo lsof -t -i: 1337)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню