Форум русскоязычного сообщества Ubuntu
Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!
- Форум русскоязычного сообщества Ubuntu »
- Архив »
- Архив »
- Архив тем до 2016г »
- Помогите освободить порт
Страницы: [1] Вниз
Автор Тема: Помогите освободить порт (Прочитано 3643 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Страницы: [1] Вверх
- Форум русскоязычного сообщества Ubuntu »
- Архив »
- Архив »
- Архив тем до 2016г »
- Помогите освободить порт
Страница сгенерирована за 0.028 секунд. Запросов: 23.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Как освободить порты?
Я запустил на сервере пример веб-сервера Торнадо. Потом остановил. Сейчас при попытке повторного запуска выдает Error: Address in use. ОС Amazon Linux AMI на Amazon Web Services.
skeeph
24.04.12 06:45:15 MSK

Значит он не остановился. Можешь попробовать сделать netstat -lp, оно покажет открытые порты и кем они открыты, и дальше уже решить что делать с тем, кто оккупирует порт (например: kill -9)
RH_ ★
( 24.04.12 06:54:24 MSK )
Ответ на: комментарий от RH_ 24.04.12 06:54:24 MSK
Не получается
Не могу понять кто захватчик. Команда выдает
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 *:garcon *:* LISTEN 31644/python tcp 0 0 *:mysql *:* LISTEN 29170/mysqld tcp 0 0 *:http *:* LISTEN 31427/python tcp 0 0 *:ftp *:* LISTEN 21579/vsftpd tcp 0 0 *:ssh *:* LISTEN 19411/sshd tcp 0 0 localhost:smtp *:* LISTEN 1197/sendmail tcp 0 0 *:garcon *:* LISTEN 31644/python tcp 0 0 *:http *:* LISTEN 31427/python tcp 0 0 *:ssh *:* LISTEN 19411/sshd udp 0 0 *:bootpc *:* 981/dhclient udp 0 0 domU-12-31-39-10-54-65.c:ntp *:* 19473/ntpd udp 0 0 localhost:ntp *:* 19473/ntpd udp 0 0 *:ntp *:* 19473/ntpd udp 0 0 fe80::1031:39ff:fe10:546:ntp *:* 19473/ntpd udp 0 0 localhost:ntp *:* 19473/ntpd udp 0 0 *:ntp *:* 19473/ntpd Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ACC ] STREAM LISTENING 709296 29170/mysqld /var/lib/mysql/mysql.sock unix 2 [ ACC ] STREAM LISTENING 4675 1278/gam_server @/tmp/fam-root- unix 2 [ ACC ] STREAM LISTENING 1140 1/init @/com/ubuntu/upstart unix 2 [ ACC ] STREAM LISTENING 2142 1054/dbus-daemon /var/run/dbus/system_bus_socket unix 2 [ ACC ] SEQPACKET LISTENING 646066 14270/udevd @/org/kernel/udev/udevd
Как удалить процесс на порту
Как с легкостью завершить (убить, удалить) уже запущенный процесс на порту.
Tools · 28.09.2020 · читать 1 мин · Автор: Alexey Myzgin
Одна из самых неприятных вещей во время разработки — это момент, когда ты сталкиваешься со следующей ошибкой в командной строке при попытке запустить приложение локально:
Server Error: this port is already in use
В большинстве случаев это означает, что мы забыли о процессе, который работает в фоновом режиме, или думали, что «убили» тот процесс, но на самом деле этого не произошло, поскольку мы не использовали CTRL + C .
На машине Linux / Mac эта команда может помочь:
lsof -ti tcp:[PORT] | xargs kill
Чтобы понять, что же происходит, давай разберем это пошагово:
- lsof используется для вывода списка открытых файлов, чтобы можно было отслеживать процессы, которые прослушивают определенный порт;
- -i используется для поиска желаемого порта;
- -t используется для возврата только PID (идентификатор процесса), который мы ищем;
- | используется для передачи списка найденных PID следующей команде;
- xargs используется для применения kill к каждому из этих PID ;
- kill фактически «убивает» каждый PID . Возможно, если процессы нужно «убить» принудительно, нам понадобиться использовать kill -9 .
Более простой подход
А сейчас давай рассмотрим более простое решение, которое можно использовать:
# One port npx kill-port [PORT] # Multiple ports npx kill-port [PORT1] [PORT2] [PORTN]
Легче, правда? Таким образом мы извлекаем kill-port пакета npm , чтобы он мог сделать за нас всю грязную работу.
Он гораздо декларативнее и не требует пояснений, поэтому его определенно проще запомнить.
Как закрыть занятый порт в Linux?
Какие действия предпринять в случае возникновения ошибки «Address already in use»?
Не закрытые соединения занимают порт, даже после завершения программы. Чаще всего операционная система закрывает их сама по себе. Можно ли это делать вручную, и какие есть способы?
Netstat
netstat отображает сетевую активность системы. Из существующих сетевых сервисов мы можем отфильтовать интересующий нас.
sudo netstat -tulpn | grep :6001 tcp 0 0 127.0.0.1:6001 0.0.0.0:* LISTEN 12345/python
Номер процесса, который занимает порт 12345. Принудительно уничтожим его:
sudo kill -9 12345
fuser
Утилита fuser находит номер процесса по порту.
fuser 6001/tcp 6001/tcp: 12345
С помощью флага -k процесс будет остановлен.
fuser -k 6001/tcp
lsof
lsof — отображает все процессы связанные с файловыми дескрипторами. С помощью флага — i можно фильтровать сетевые сокеты:
lsof -i :6001 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME python 11778 uralbash 7u IPv4 5754939 0t0 TCP localhost:http-alt (LISTEN)