Я использую PHP-Websockets для создания простого чат-сервера. У меня все работает правильно, когда я запускаю php-скрипт, который впервые создает веб-узел на моем сервере. Если сценарий останавливается по какой-то причине, и я пытаюсь перезапустить его, я получаю сообщение о том, что скрипт не может связывать сокет, потому что он уже существует.
Как я могу сделать скрипт для поиска этого старого сокета (учитывая, что я знаю, какой порт он работает) и закрыть его, чтобы я мог создать новое соединение?
Если у вас есть доступ к оболочке, я бы использовал следующую команду для вывода PID процесса с помощью этого сокета (порта).
netstat --tcp --listening --program
Затем убейте этот процесс.
kill %pid%
Чтобы этого не произошло, я бы дважды проверял, что ваш скрипт заканчивается изящно и сначала закрывает сокет.