# Service Control

:::tip

**What You'll Learn**

How to start, stop, restart, and reload the Netdata Agent across different operating systems and service management systems.

:::

The Netdata Agent automatically starts at boot after installation, except when installed via Homebrew on macOS — see [macOS (Homebrew)](#macos-homebrew) below.

:::important

**Important**

In most cases, you need to **restart the Netdata service** to apply changes to configuration files. Health configuration files, which define alerts, are an exception. They can be [reloaded](#reload-health) **without restarting**.

:::

:::warning

**Service Restart Impact**

Restarting the Netdata Agent will cause temporary gaps in your collected metrics. This occurs while the netdata process reinitializes its data collectors and database engine.

:::

## UNIX

### Using `systemctl`, `service`, or `init.d`

| Action  | Systemd                          | Non-systemd                                                          |
|---------|----------------------------------|----------------------------------------------------------------------|
| start   | `sudo systemctl start netdata`   | `sudo service netdata start` or `sudo /etc/init.d/netdata start`     |
| stop    | `sudo systemctl stop netdata`    | `sudo service netdata stop` or `sudo /etc/init.d/netdata stop`       |
| restart | `sudo systemctl restart netdata` | `sudo service netdata restart` or `sudo /etc/init.d/netdata restart` |
| status  | `sudo systemctl status netdata`  | `sudo service netdata status` or `sudo /etc/init.d/netdata status`   |

### Check status

Use the commands above to check whether the Netdata Agent service is running.

You can also verify that the Agent is reachable by opening `http://NODE:19999` in a browser, or by running:

```bash
curl http://NODE:19999/api/v1/info
```

Replace `NODE` with the IP address or hostname of your Agent.

:::tip

Use `sudo netdatacli ping` to check whether the Agent is ready. It outputs `pong` with exit code `0` when the Agent is ready, exit code `1` while still initializing, and exit code `255` if the Agent is unreachable.

:::

### Using `netdata`

Use the `netdata` command, typically located at `/usr/sbin/netdata`, to start the Netdata daemon.

```bash
sudo netdata
```

If you start the daemon this way, close it with `sudo killall netdata`.

### Using `netdatacli`

The Netdata Agent also comes with a [CLI tool](/src/cli/README.md) capable of performing shutdowns. Start the Agent back up using your preferred method listed above.

```bash
sudo netdatacli shutdown-agent
```

### Reload health

No need to restart the Netdata Agent after modifying health configuration files (alerts). Use `netdatacli` to avoid metric collection gaps.

```bash
sudo netdatacli reload-health
```

## Windows

:::note

**Administrator Access Required**

You will need to run PowerShell as administrator.

:::

### Using Windows Services GUI

<details>
<summary><strong>Manage Through Task Manager</strong></summary><br/>

If you prefer to manage the Agent through the GUI, you can start-stop and restart the `Netdata` service from the "Services" tab of Task Manager.

<br/>
</details>

### Using PowerShell Commands

- To **check the status** of Netdata, run `Get-Service Netdata`.
- To **start** Netdata, run `Start-Service Netdata`.
- To **stop** Netdata, run `Stop-Service Netdata`.
- To **restart** Netdata, run `Restart-Service Netdata`.

### Using `netdatacli`

The `netdatacli` tool is available on Windows at the Netdata installation path (default `C:\Program Files\Netdata\usr\bin\netdatacli.exe`). It sends management commands to the running Agent without restarting it. Run PowerShell as Administrator and use the full path, or add the Netdata bin directory to `PATH`.

```powershell
& "C:\Program Files\Netdata\usr\bin\netdatacli.exe" reload-health
```

| Command                            | Description                                             |
|------------------------------------|---------------------------------------------------------|
| `netdatacli reload-health`         | Reload health/alert configuration without restarting    |
| `netdatacli reload-labels`         | Reload host labels from netdata.conf                    |
| `netdatacli reload-claiming-state` | Reload the Agent's claiming state from disk             |
| `netdatacli reopen-logs`           | Close and reopen log files                              |
| `netdatacli ping`                  | Verify the Agent is ready (outputs `pong` if reachable) |
| `netdatacli shutdown-agent`        | Gracefully shut down the Agent                          |
| `netdatacli aclk-state`            | Show current ACLK/Cloud connection state                |
| `netdatacli version`               | Display the Agent version                               |

## macOS (Homebrew)

:::note

Unlike the other installation methods on this page, a Homebrew-installed Agent does **not** start automatically after `brew install` or at boot. Homebrew only writes the service definition; you must start it explicitly with `brew services start`, which also registers it to launch at login.

:::

### Using `brew services`

| Action  | Command                         |
|---------|---------------------------------|
| start   | `brew services start netdata`   |
| stop    | `brew services stop netdata`    |
| restart | `brew services restart netdata` |
| status  | `brew services info netdata`    |

- `start` starts the Agent immediately and registers it to launch at login (or boot).
- `stop` stops the Agent immediately and unregisters it from launching at login (or boot).
- `restart` stops (if necessary) and starts the Agent immediately, and registers it to launch at login (or boot).

### Check status

Use `brew services info netdata` to check whether the Agent is running.

You can also verify that the Agent is reachable by opening `http://localhost:19999` in a browser, or by running:

```bash
curl http://localhost:19999/api/v1/info
```

## Quick Reference

### UNIX Commands Summary

| Task              | Systemd                          | Non-systemd                                                          | Direct Command                       |
|-------------------|----------------------------------|----------------------------------------------------------------------|--------------------------------------|
| **Start**         | `sudo systemctl start netdata`   | `sudo service netdata start` or `sudo /etc/init.d/netdata start`     | `sudo netdata`                       |
| **Stop**          | `sudo systemctl stop netdata`    | `sudo service netdata stop` or `sudo /etc/init.d/netdata stop`       | `sudo killall netdata`               |
| **Restart**       | `sudo systemctl restart netdata` | `sudo service netdata restart` or `sudo /etc/init.d/netdata restart` | Stop + Start                         |
| **Status**        | `sudo systemctl status netdata`  | `sudo service netdata status` or `sudo /etc/init.d/netdata status`   | `curl http://NODE:19999/api/v1/info` |
| **Reload Health** | `sudo netdatacli reload-health`  | `sudo netdatacli reload-health`                                      | `sudo netdatacli reload-health`      |
| **Shutdown**      | `sudo netdatacli shutdown-agent` | `sudo netdatacli shutdown-agent`                                     | `sudo netdatacli shutdown-agent`     |

### Windows Commands Summary

| Task              | PowerShell Command        | GUI Location                      | netdatacli                  |
|-------------------|---------------------------|-----------------------------------|-----------------------------|
| **Status**        | `Get-Service Netdata`     | Task Manager > Services > Netdata | —                           |
| **Start**         | `Start-Service Netdata`   | Task Manager > Services > Netdata | —                           |
| **Stop**          | `Stop-Service Netdata`    | Task Manager > Services > Netdata | —                           |
| **Restart**       | `Restart-Service Netdata` | Task Manager > Services > Netdata | —                           |
| **Reload Health** | —                         | —                                 | `netdatacli reload-health`  |
| **Reload Labels** | —                         | —                                 | `netdatacli reload-labels`  |
| **Shutdown**      | —                         | —                                 | `netdatacli shutdown-agent` |
| **Ping**          | —                         | —                                 | `netdatacli ping`           |

### macOS (Homebrew) Commands Summary

| Task        | Command                         |
|-------------|---------------------------------|
| **Status**  | `brew services info netdata`    |
| **Start**   | `brew services start netdata`   |
| **Stop**    | `brew services stop netdata`    |
| **Restart** | `brew services restart netdata` |
