#macos #server
Вопрос:
Контекст: Проснулся и не смог запустить свое приложение, использующее порт 9000
, потому что адрес уже использовался. Сообщение на моем терминале такое
Error response from daemon: Ports are not available: listen tcp 0.0.0.0:9000: bind: address already in use
Команда netstat -anvp tcp | awk 'NRlt;3 || /LISTEN/'
перечисляет процесс, запущенный на порту 9000, например;
Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) rhiwat shiwat pid epid state options tcp4 0 0 127.0.0.1.9000 *.* LISTEN 131072 131072 1260 0 0x0080 0x00000006 tcp4 0 0 127.0.0.1.3306 *.* LISTEN 131072 131072 997 0 0x0100 0x00000006 tcp4 0 0 127.0.0.1.33060 *.* LISTEN 131072 131072 997 0 0x0000 0x00000006
в списке есть еще несколько процессов, я просто урезал их. Я вижу такие вещи, как 127.0.0.1.3306
, по-моему, mysql, это нормально, но процесс, в котором я работаю, — это то, в 127.0.0.1.9000
чем я не уверен. Убивая процесс с sudo kill 1260
помощью идентификатора процесса 1260
, и при выполнении команды netstat -anvp tcp | awk 'NRlt;3 || /LISTEN/'
процесс снова отображается с другим идентификатором процесса.
Бегущие sudo lsof -i TCP:9000
отпечатки
php-fpm 2997 root 9u IPv4 0xf6c73412e60c41cb 0t0 TCP localhost:cslistener (LISTEN) php-fpm 3000 _www 10u IPv4 0xf6c73412e60c41cb 0t0 TCP localhost:cslistener (LISTEN) php-fpm 3001 _www 10u IPv4 0xf6c73412e60c41cb 0t0 TCP localhost:cslistener (LISTEN)
Поэтому , увидев это напечатанным, я погуглил cslistener
, заметив TCP localhost:cslistener
, что в том, что напечатано, есть строка.
Одна находка предложила поискать его в файле /etc/services
, и, конечно, я его нашел, строки выглядели так
... cslistener 9000/udp # CSlistener cslistener 9000/tcp # CSlistener ...
Итак, мой вопрос в том, что такое cslistener
и почему он работает на порту 9000 и перезапускается каждый раз, когда я его убиваю.
Комментарии:
1.Это не ответ о том, что
cslistener
есть, а о том, как мне удалось освободить порт 9000 в моем случае. Похоже, php-fpm использовал порт 9000, поэтому я перешел к/usr/local/etc/php/7.4/php-fpm.d
файлу и отредактировалwww.conf
файл. Я изменил строкуlisten = 127.0.0.1:9000
наlisten = 127.0.0.1:9324
(вы можете использовать любой порт, который хотите) и убил процесс, запущенный на порту 9000, который перезапустился, но использовал порт9324