Graceful shutdown (SIGTERM) + HTTP /health endpoint

Раньше shutdown_signal вообще не существовал — весь механизм graceful
shutdown в network.rs был мёртвым кодом, ничего его не вызывало. main.rs
теперь spawn'ит net.run() и последовательно ждёт сигнал, затем drain
(НЕ tokio::select! — select! убил бы run()-future на середине drain'а в
момент, когда shutdown-future резолвится). /health на 127.0.0.1 отдаёт
активные соединения — для systemd/LB health-check.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-09 16:37:25 +07:00
parent d8363667e0
commit 10d357b8ec
5 changed files with 180 additions and 5 deletions
+5 -1
View File
@@ -5,10 +5,14 @@ After=network.target
[Service]
User=root
WorkingDirectory=/root/netr-core
ExecStart=/root/netr-core/netrunner-server --host=0.0.0.0 --port=443
ExecStart=/root/netr-core/netrunner-server --host=0.0.0.0 --port=443 --health-port=9091
Restart=always
RestartSec=3
LimitNOFILE=65535
# systemctl stop/restart шлёт SIGTERM — теперь сервер ловит его сам и
# дожидается отключения активных клиентов (см. server/src/main.rs,
# server/src/network.rs) вместо мгновенного обрыва по TimeoutStopSec.
TimeoutStopSec=35
[Install]
WantedBy=multi-user.target