Уничтожьте все процессы, связанные с портом

Уничтожьте все процессы на порте 3000. Это - то, что пробуют:

ubuntu@111:~/chatapp$ sudo netstat -peanut|grep 3000
tcp6       0      0 :::3000                 :::*                    LISTEN      0          632007      18200/node      
ubuntu@111:~/chatapp$ sudo kill 18200
ubuntu@111:~/chatapp$ sudo netstat -peanut|grep 3000
tcp6       0      0 :::3000                 :::*                    LISTEN      0          632207      18349/node      
ubuntu@111:~/chatapp$ sudo killall node
ubuntu@111:~/chatapp$ sudo netstat -peanut|grep 3000
tcp6       0      0 :::3000                 :::*                    LISTEN      0          632364      18414/node      
ubuntu@111:~/chatapp$ 
0
задан 1 April 2016 в 14:25

3 ответа

Вы можете использовать следующую команду, чтобы получить только pid:

sudo netstat -peanut | grep 3000 | awk '{ print $9 }' | sed 's:/[^/]*$::' | grep -Eo '[0-9]{1,5}'

awk команда получает 9-е поле.

sed Команда получает pid перед косой чертой.

И команда grep возвращает только цифры, чтобы исключить лишние строки.

Здесь вы можете просто создать цикл и убить процессы.

1
ответ дан 23 July 2019 в 22:21

Некоторые программы не будут отображаться, если вы не запустите netstat с помощью sudo. Сравните эти два прогона:

$ netstat -natp | grep tcp6                                                                           
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::25                   :::*                    LISTEN      -               
tcp6       0      0 :::445                  :::*                    LISTEN      -               
tcp6       0      0 :::139                  :::*                    LISTEN      -               
tcp6       0      0 :::22                   :::*                    LISTEN 



$ sudo netstat -natp | grep tcp6                                                                      
[sudo] password for xieerqi: 
tcp6       0      0 :::25                   :::*                    LISTEN      1522/master     
tcp6       0      0 :::445                  :::*                    LISTEN      770/smbd        
tcp6       0      0 :::139                  :::*                    LISTEN      770/smbd        
tcp6       0      0 :::22                   :::*                    LISTEN      1190/sshd 

Что касается уничтожения процесса, связанного с самим портом, то это простой случай парсинга вывода из netstat (что может сделать awk) и передачи вывода из этой команды в [ 115].

Вот как можно проанализировать вывод с помощью awk. По умолчанию awk использует пробелы для разделения выходных данных на поля, поэтому я должен циклически перебирать все поля (из-за нескольких пробелов awk считает, что между реальным текстом есть несколько полей).

$ sudo netstat -natp | awk '/:53579/{sub(/\//," ");for(i=1;i<=NF;i++){\                                    
> if($i~/ESTABLISHED/||/LISTEN/||/CLOSE WAIT/) print $(i+1)}}'                                                        
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
5027

Остальные будут просто

that_command_above | xargs -I {} kill -TERM  {}
0
ответ дан 23 July 2019 в 22:21

killport

killport использования может быть загружен отсюда с помощью этого:

wget https://raw.githubusercontent.com/abdennour/miscs.sh/master/killport

sh killport 3000

Другой путь может использовать это:

sudo kill -9 3000

-1
ответ дан 23 July 2019 в 22:21

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

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