System daemon
paron server bootstrap and paron tunnel bootstrap can install a system daemon that starts with
the system. Paron installs it with systemd, launchd or the Windows service control manager. With a
different init system, start paron server run or paron tunnel run with that init system.
| Linux | macOS | Windows | |
|---|---|---|---|
| Server | paron-server |
dev.bovolato.paron.server |
paron-server |
| Tunnel | paron-tunnel |
dev.bovolato.paron.tunnel |
paron-tunnel |
| Definition | /etc/systemd/system/<name>.service |
/Library/LaunchDaemons/<name>.plist |
HKLM\SYSTEM\CurrentControlSet\Services\<name> |
| Account | paron |
_paron |
NT SERVICE\<name> |
In the commands on this page, replace <name> with the name of the daemon.
Check, read the log, restart
Section titled “Check, read the log, restart”systemctl status <name> # state of the daemonjournalctl -u <name> # logsudo systemctl restart <name> # restartsudo launchctl print system/<name> # state of the daemonlog show --info --debug --predicate 'subsystem == "<name>"' # logsudo launchctl kickstart -k system/<name> # restartGet-Service <name> # state of the daemonGet-WinEvent -ProviderName <name> -MaxEvents 50 # logRestart-Service <name> # restartChange a setting
Section titled “Change a setting”The daemon definition holds the settings as environment variables. Edit the definition, then do the step for your daemon manager. With systemd and launchd, a restart alone keeps the old definition.
- systemd: run
sudo systemctl daemon-reload, then restart the daemon. - launchd: run
sudo launchctl bootout system/<name>, thensudo launchctl bootstrap system /Library/LaunchDaemons/<name>.plist. - Windows: edit the
Environmentvalue of the registry key, then restart the service.
Accounts
Section titled “Accounts”On Linux and macOS, the daemon runs as a system account with no login shell and no home directory. Paron creates the account if it does not exist, and makes it the owner of the data directory. The server and the tunnels on one host use the same account.
On Windows, the daemon runs as a virtual account. Windows creates this account with the service,
and deletes it with the service. The virtual account, the user that ran the bootstrap, the
administrators and the system can open the data directory. Run the paron commands in PowerShell
as administrator.
With no system daemon, the data directory belongs to the user that ran the bootstrap. Paron logs a warning when it runs as root, or on Windows as an administrator.
When root runs a command on a data directory that belongs to a different account, Paron tries to run the command as the owner of the directory. If this fails, the command stops with an error.
© 2026 Nicola Bovolato. Paron is source-available under the PolyForm Shield License 1.0.0.