Уничтожьте все процессы на порте 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$
Вы можете использовать следующую команду, чтобы получить только pid
:
sudo netstat -peanut | grep 3000 | awk '{ print $9 }' | sed 's:/[^/]*$::' | grep -Eo '[0-9]{1,5}'
awk
команда получает 9-е поле.
sed
Команда получает pid
перед косой чертой.
И команда grep возвращает только цифры, чтобы исключить лишние строки.
Здесь вы можете просто создать цикл и убить процессы.
Некоторые программы не будут отображаться, если вы не запустите 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 {}
killport
killport использования может быть загружен отсюда с помощью этого:
wget https://raw.githubusercontent.com/abdennour/miscs.sh/master/killport
sh killport 3000
Другой путь может использовать это:
sudo kill -9 3000