Привет, коллеги. Как-то нашёл на просторах GitHub интересную утилиту под названием Kill Port. Утилита написана на Bash.
Kill Port — инструмент командной строки для уничтожения процесса, запущенного на определённом порту.
Ситуация. Запускаю я, например, какое-нибудь Node.js-приложение или Gunicorn, а оно начинает орать: а у тебя порт уже занят. Начинается беготня с выяснением, а кто это сделал?
Особенно актуально при локальной разработке: где-то в фоне что-то висит и радуется. Естественно, никогда не можешь вспомнить, что нужно набрать в консоли, чтобы узнать, какой процесс занимает порт (конечно, кроме 80 и 443, все и так знают, что это Nginx).
Лезешь в гугол, находишь в очередной раз lsof -i :3000, киляешь всё это в надежде. И так далее.
Можно форкнуть проект и добавить туда известные процессы, тот же Nginx и Gunicorn, чтобы корректно их завершать, а не килить через -9 (SIGKILL). Хотя это лишнее. Kill Port работает из коробки, что ещё нужно.
Есть нюанс при установке, там чёт у него в инсталляторе напутано, поэтому просто клоним скрипт killport, кидаем в /usr/local/sbin с атрибутом +x.
Для macOS утилита тоже работает, ставится через:
brew install killport
Kill Port может не завершить некоторые процессы, работающие на уровне ядра, к примеру NFS / portmapper / WireGuard. К ним не прикреплён соответствующий PID, но это крайние случаи. Для большинства сценариев Kill Port успешно прикончит процесс.








Комментарии