From c2d4e01d0b652061f1258dfa80cc8387bb635a4a Mon Sep 17 00:00:00 2001 From: SuspiciousActivity <38253929+SuspiciousActivity@users.noreply.github.com> Date: Sat, 3 Oct 2026 17:18:30 +0200 Subject: [PATCH] add signal handlers --- Dockerfile | 2 +- main.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 53cf6a1..311a12f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,4 @@ WORKDIR /app COPY --from=builder /app/build-docker/fasttext_lid_server . RUN curl --remote-name https://dl.fbaipublicfiles.com/fasttext/supervised-models/lid.176.bin -CMD ["sh", "-c", "./fasttext_lid_server ${MODEL_FILE:-lid.176.bin} ${PORT:-8080}"] \ No newline at end of file +CMD ["sh", "-c", "exec ./fasttext_lid_server ${MODEL_FILE:-lid.176.bin} ${PORT:-8080}"] \ No newline at end of file diff --git a/main.cpp b/main.cpp index df73f12..79386ef 100644 --- a/main.cpp +++ b/main.cpp @@ -3,6 +3,9 @@ #include #include #include +#include + +httplib::Server *g_svr = nullptr; std::string stripLabel(const std::string &label) { const std::string prefix = "__label__"; @@ -59,8 +62,13 @@ int main(int argc, char *argv[]) { res.set_content(result, "application/json"); }); + g_svr = &svr; + std::signal(SIGINT, [](int) { if (g_svr) g_svr->stop(); }); + std::signal(SIGTERM, [](int) { if (g_svr) g_svr->stop(); }); + auto port = std::stoi(argv[2]); std::cout << "Starting server on port " << port << std::endl; svr.listen("0.0.0.0", port); + std::cout << "Server stopped" << std::endl; return 0; } \ No newline at end of file