Skip to main content
The NSP daemon is designed to run as a Windows Service named NSPDaemon. Running as a service means the daemon starts automatically when Windows boots, continues running without a logged-in user session, and restarts automatically after transient failures. The GUI installer sets all of this up for you — the commands below let you manage and troubleshoot the service at any time.

Service Overview

Service name

NSPDaemon — use this in all PowerShell and sc.exe commands.

Display name

NSP Daemon — shown in services.msc and Task Manager.

Start type

Automatic — starts on every Windows boot without user interaction.

Failure recovery

Auto-restarts on failure: 30 s after first, 60 s after second, 120 s after subsequent failures.

Checking Service Status

You will see output similar to:
A Status of Running means the daemon is active and the API on localhost:7842 should be responsive. Confirm with the health check:

Starting, Stopping, and Restarting

Use these PowerShell commands to control the service lifecycle. Run them in an Administrator PowerShell session.
You can also manage the service visually by opening Services (services.msc) and locating NSP Daemon in the list.
Changes to [server] settings in axon.toml (port, host) require a service restart to take effect. Most other configuration changes are picked up live. See Configuration.

Installing and Uninstalling the Service

If you used the GUI installer, the service is already registered. Use these commands for manual or scripted deployments.
1

Install the service

Run this in an Administrator PowerShell session. This registers NSPDaemon with the Windows Service Control Manager and configures automatic start and failure recovery.
Expected output:
2

Start the service

Alternatively, use Start-Service -Name NSPDaemon directly from PowerShell.
3

Verify it is running

To remove the service entirely:
Uninstalling the service does not delete axon-daemon.exe or your configuration files under C:\ProgramData\Nelieo. Run axon-daemon.exe install again at any time to re-register with the same configuration.

Configuring Failure Recovery

The installer sets sensible defaults for automatic restart on failure. To customize the recovery schedule, use sc.exe as Administrator:

Running as a Least-Privilege Account

By default, the service runs as Local System. For production environments, create a dedicated low-privilege account to limit the service’s access to the rest of the system:
After changing the service account, restart the service with Restart-Service -Name NSPDaemon and confirm the health check still returns "status": "ok".

Checking the Windows Event Log

The daemon writes structured events to the Windows Event Log under the Application log, source NSPDaemon. This is the first place to look when the service fails to start or exits unexpectedly.
You can also use the GUI:
  1. Open Event Viewer (eventvwr.msc)
  2. Expand Windows Logs → Application
  3. Click Filter Current Log and set Event sources to NSPDaemon

Troubleshooting Common Service Failures

The most common cause is a configuration error in axon.toml. Check the Windows Event Log for a startup error message:
Then validate your config by running the daemon in foreground mode — it prints config errors directly to the terminal:
Fix any errors reported, then restart the service.
Another process is bound to port 7842. Find it and either stop it or change the daemon’s port in axon.toml:
To change the daemon port, update [server] port in axon.toml and restart the service. Remember to update any SDK clients and agents that connect to the old port.
If you configured a custom service account and the service reports Access Denied, the account likely does not have permission to read axon.toml or write to the log directory. Re-run the ACL commands in the Running as a Least-Privilege Account section above, then restart the service.
Connection refused on port 7842 means the daemon process is not running. Check the service status:
If Status is Stopped, check the Event Log for the exit reason, then start the service:
If the service repeatedly stops, run it in foreground mode to see the error output directly in the terminal.
The daemon process is alive but not responding to HTTP requests. This can happen if the daemon’s async runtime has deadlocked or if another process is intercepting traffic on port 7842. Restart the service to recover:
If the issue recurs frequently, enable include_spans = true in [logging] and share the span output with Nelieo support.

Running in Foreground for Debugging

If you need interactive, real-time log output — for example, to trace a probe failure or test a configuration change — stop the service and run the daemon in foreground mode:
Press Ctrl+C to stop. The binary is identical to the one the service uses — run is just a startup mode, not a different build. When you are done debugging, restart the service: