Автор рассказывает, как с помощью сокет-активации systemd запускать Go-сервис только когда в него реально приходит запрос, чтобы не тратить память и CPU.
systemd сам открывает и слушает сокет на нужном порту, а при первом подключении запускает сервер, передавая ему уже открытый файловый дескриптор вместе с переменными окружения LISTEN_PID и LISTEN_FDS. В Go это можно сделать вручную через net.FileListener, но удобнее использовать пакет coreos/go-systemd, который через activation.Listeners() сразу отдает готовый net.Listener.
Можно наколбасить решение, которое сможет работать и без активации, при этом использовать фишечки systemd через daemon.SdNotify() и будет завершает работу после нескольких секунд простоя с помощью отдельной горутины с таймером. В итоге сервис будет стартовать по первому запросу и автоматически выключается при бездействии, освобождая ресурсы
13.07.2026
Похожее
14.08.2026
Soppo
Пятничный язык программирования! Я про него уже писал, но он продолжает развиват...
12.08.2026
Typescript Defer
Автор экспериментировал с добавлением оператора defer из Go в компилятор TypeScr...
11.08.2026
Raft сломан
Ребята из Antithesis(я хз кто это) протестировали несколько популярных реализаци...
11.08.2026
Движение назад
Прикольная статья если вы хотите поковыряться в итераторах, джинериках и вот в э...