Golang как получить ошибку запуска http сервера например если занят порт?
сабж. в доках написано что ListenAndServe always returns a non-nil error. но я не нашел там значений ошибок именно работы самого сервера, нашел только ошибки обслуживания запросов.
а вы случаем не в курсе как понять вообще удачно ли сервер сервер стартанул? мне нужно выводить определенное сообщение в зависимости от успешного или нет запуска.
coolstudent, ну так посмотрите что в err при нормальном старте (по логике должно быть пусто) и в следующие запуски проверяйте, если отличается - старт с ошибкой
Павел Рогов, не работает так. во-первых в доках написано что ListenAndServe always returns a non-nil error, во-вторых сам пробовал и это первым было что я написал. Судя по опыту если не делать go ListenAndServe то после вызова этой функции далее ничего не будет выполняться, значит там в этой функции внутри цикл бесконечный. Можно конечно опереться на то что если сервер не запустился то последующие за ним команды выполнятся но таким образом определять успешность запуска извращение да и я запускаю его в отдельной от main горутине
coolstudent, просто выводите, что сервер стартует перед ListenAndServe, а если будет фейл старта, сразу узнаете по возвращённой ошибке.
Если хотите совсем заморочиться, то ждите небольшой таймаут и пишите, что старт успешен, если ListenAndServe за этот таймаут ничего не вернул.
Павел Рогов, запускаю в отдельной горутине потому что если запустить его в основной после его запуска следующий за ListenAndServe код выполняться не будет а мне так не надо. У меня после запуска веб сервера еще куча действий выполняется и запускается свой собственный цикл бесконечный для обработки команд. Александр Павлюк, как мне лучше организовать таймаут? что делать если сервер успешно запустился ведь если так то следующий за ним код не выполнится?
к сожалению это человекопонятная ошибка. а вот как в программе понять что сервер не смог стартануть? т.е. надо чтоб можно было ошибку в if проверить и на основании сравнения ссказать запустился ли сервер или упал