Linux systemd support
How Radiator Server integrates with systemd for service management and readiness notification.
Linux systemd support
Radiator Server ships with a systemd service unit file for managing the server process on Linux. The OS installation package installs the service file automatically. See Basic Installation for installation instructions.
Enabling and starting the service
Enable the service so it starts on boot:
sudo systemctl enable radiator-server.service
Start the service:
sudo systemctl start radiator-server.service
Check the service status:
sudo systemctl status radiator-server.service
Service configuration
The service unit file defines environment variables for paths used by Radiator. Examine the included service file for the full list of available variables and their defaults. These variables can be overridden using a systemd environment file — the service file documents the supported override paths.
The default service file runs Radiator as a dedicated system user with CAP_NET_BIND_SERVICE to allow binding to privileged ports (below 1024) without running as root. Review the service file for the exact user, group, and capability settings.
Readiness notification (Type=notify)
Radiator Server supports the systemd Type=notify readiness protocol. When the NOTIFY_SOCKET environment variable is set, Radiator sends a READY=1 message after configuration has been loaded and all subsystems are initialized.
To enable this, set Type=notify in the service unit file:
[Service]
Type=notify
With Type=notify, systemctl start blocks until Radiator signals that it is ready to serve requests. This ensures that dependent services (configured with After=radiator-server.service) do not start before Radiator is operational.
Without Type=notify, systemd considers the service started as soon as the process is launched, regardless of whether configuration loading has completed.
Automatic restart
The default service configuration includes Restart=always, which means systemd automatically restarts Radiator if the process exits unexpectedly.
Logging with systemd
Radiator writes application logs to destinations configured in the radconf logging block (file, memory buffer, syslog, console). When no logging block is configured, Radiator defaults to logging to the console (stdout).
The default service file redirects stdout and stderr to log files. If file logging is also configured in radconf, application logs are written to both the radconf-configured log files and the stdout capture file.
To send stdout and stderr to the systemd journal instead, remove or comment out the StandardOutput and StandardError lines in the service unit file. Console output is then accessible via journalctl:
journalctl -u radiator-server.service -f
See Logging for details on Radiator log configuration.
About Radiator software development security
Architecture Overview
Backend Load Balancing
Basic Installation
Built-in Environment Variables
Comparison Operators
Configuration Editor
Configuration Import and Export
Data Types
Duration Units
Environment Variables
Execution Context
Execution Pipelines
Filters
Getting a Radiator License
Health check /live and /ready
High Availability and Load Balancing
High availability identifiers
HTTP Basic Authentication
Introduction
Linux systemd support
Local AAA Backends
Log storage and formatting
Management API privilege levels
Namespaces
Password Hashing
Pipeline Directives
Probabilistic Sampling
Prometheus scraping
PROXY Protocol Support
Radiator server health and boot up logic
Radiator sizing
Radiator software releases
Rate Limiting
Rate Limiting Algorithms
Reverse Dynamic Authorization
Service Level Objective
Template Rendering CLI
Tools radiator-client
TOTP/HOTP Authentication
What is Radiator?
YubiKey Authentication
YubiKey Context Variables
About Radiator software development security
Architecture Overview
Backend Load Balancing
Basic Installation
Built-in Environment Variables
Comparison Operators
Configuration Editor
Configuration Import and Export
Data Types
Duration Units
Environment Variables
Execution Context
Execution Pipelines
Filters
Getting a Radiator License
Health check /live and /ready
High Availability and Load Balancing
High availability identifiers
HTTP Basic Authentication
Introduction
Linux systemd support
Local AAA Backends
Log storage and formatting
Management API privilege levels
Namespaces
Password Hashing
Pipeline Directives
Probabilistic Sampling
Prometheus scraping
PROXY Protocol Support
Radiator server health and boot up logic
Radiator sizing
Radiator software releases
Rate Limiting
Rate Limiting Algorithms
Reverse Dynamic Authorization
Service Level Objective
Template Rendering CLI
Tools radiator-client
TOTP/HOTP Authentication
What is Radiator?
YubiKey Authentication
YubiKey Context Variables