@SergeTkach
OpenCart Forever

Как убить процесс Go-сервера на Linux Centos?

Изучаю Go. В первом же файле прописывается прослушивание порта:

http.ListenAndServe("localhost:8181", msgHandler)

В итоге по данному адресу отображается тестовая веб-страница. Все отлично!

Но теперь мне нужно остановить этот процесс и отредактировать содержимое приложения. А как это сделать - не понятно. Дело в том, что есть куча инструкций, как сервер запустить, а вот как остановить - не понятно.
top и Системный монитор не помогает найти нужный процесс, чтобы убить его.

Как остановить прослушивание этого самого порта?

На всякий случай уточню еще следующее:
Запускаю сервер: go run server.go - после чего в консоли больше ничего делать нельзя - она словно залипает
Жму CTRL + Z - и снова могу работать в консоли, но по адресу localhost:8181 в итоге ничего не отображается, и браузер просто бесконечно виснет. Тогда как обращение к неопределенному порту localhost:8282 - быстро отрабатывает и пишет "Попытка соединения не удалась"

Вопрос решен! Спасибо, откликнувшимся!
Надо сказать, что работают оба варианта, и отметил решением просто первый ответ, тем более, что он более развернут.

* Важное примечание
От себя отмечу, что эти команды не сработают, если нажимать CTRL + Z. Надо сначала в другом окне консоли убить процесс, тогда собственно и нажатие CTRL + Z не нужно. Что-то подобное происходит с программой geany (которую я запускаю под рутом для редактирования конфигов): если не завершить ее на крестик, то CTRL + Z вернет управление консоли, но потом намучаешься закрыть сам geany. Тут такая же фигня: если нажал CTRL + Z, то никакой процесс уже не найдется и не убьется

* Примечание 2
Оказывается, надо жать CTRL + C, а я всегда жал не то...
  • Вопрос задан
  • 351 просмотр
Решения вопроса 1
@Hedy
Можно сначала найти pid процесса который слушает данный порт и потом убить его:
lsof -i:8181
Или все сразу:
kill -9 $(lsof -t -i:8181

Но правильнее наверно использовать какой-нибудь супервизор или при старте сохранять pid хотя бы:
./app &
echo $! > pidfile
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
2ord
@2ord
Нужно найти процесс, который прослушивает на этом порту и завершить его.
Поскольку известно название программы, тогда просто так:
pkill myprog
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы