Signals

Command Line

On Unix systems, the NATS server responds to the following signals:

Signal Result
SIGKILL Kills the process immediately
SIGQUIT Kills the process immediately and performs a core dump
SIGINT Stops the server gracefully
SIGTERM Stops the server gracefully
SIGUSR1 Reopens the log file for log rotation
SIGHUP Reloads server configuration file
SIGUSR2 Stops the server after evicting all clients (lame duck mode)

The nats-server binary can be used to send these signals to running NATS servers using the --signal/-sl flag. It supports the following commands:

Command Signal
stop SIGKILL
quit SIGINT
term SIGTERM
reopen SIGUSR1
reload SIGHUP
ldm SIGUSR2

Quit the server

nats-server --signal quit

Stop the server

nats-server --signal stop

Lame duck mode the server

nats-server --signal ldm

Reopen log file for log rotation

nats-server --signal reopen

Reload server configuration

nats-server --signal reload

Multiple processes

If there are multiple nats-server processes running, or if pgrep isn't available, you must either specify a PID or the absolute path to a PID file:

nats-server --signal stop=<pid>
nats-server --signal stop=/path/to/pidfile

As of NATS v2.10.0, a glob expression can be used to match one or more process IDs, such as:

nats-server --signal ldm=12*

Windows

See the Windows Service section for information on signaling the NATS server on Windows.