Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Triton inference server Server TritonSignal

From Leeroopedia
Knowledge Sources
Domains Signal_Handling, Server_Lifecycle
Last Updated 2026-02-13 17:00 GMT

Overview

Concrete tool for registering OS signal handlers that enable graceful Triton server shutdown and crash diagnostics with stack traces.

Description

The RegisterSignalHandler() function installs platform-specific signal handlers. On Linux, it registers SIGINT/SIGTERM for graceful shutdown (setting a shared flag and notifying via condition variable) and SIGSEGV/SIGABRT handlers that print Boost stacktraces before crashing. On Windows, it uses SetConsoleCtrlHandler for Ctrl+C, close, break, logoff, and shutdown events. Shared synchronization primitives (signal_exiting_ flag, signal_exit_mu_ mutex, signal_exit_cv_ condition variable) provide safe signal-to-main thread communication.

Usage

Called once during Triton server startup in main.cc to install signal handlers before entering the main event loop.

Code Reference

Source Location

Signature

namespace triton { namespace server {

// Shared synchronization primitives
extern volatile bool signal_exiting_;
extern std::mutex signal_exit_mu_;
extern std::condition_variable signal_exit_cv_;

// Register platform-specific signal handlers
void RegisterSignalHandler();

}} // namespace triton::server

Import

#include "triton_signal.h"

I/O Contract

Inputs

Name Type Required Description
(none) No parameters; installs handlers globally

Outputs

Name Type Description
signal_exiting_ volatile bool Set to true when shutdown signal received
signal_exit_cv_ condition_variable Notified on shutdown signal
stderr text Stack trace on crash signals (SIGSEGV, SIGABRT)

Usage Examples

Server Startup Signal Registration

#include "triton_signal.h"

int main(int argc, char** argv) {
  // Register signal handlers early in startup
  triton::server::RegisterSignalHandler();

  // ... start server ...

  // Wait for shutdown signal
  {
    std::unique_lock<std::mutex> lock(triton::server::signal_exit_mu_);
    triton::server::signal_exit_cv_.wait(
        lock, [] { return triton::server::signal_exiting_; });
  }

  // Graceful shutdown
  return 0;
}

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment