Platform support
macOS, Linux, and Windows — what's supported for managed worker tunnel services.
Worker tunnels have two modes: foreground (worker start) and managed service (worker install). Foreground is supported everywhere; managed services depend on the platform.
Support matrix
| Platform | Foreground (worker start) | Managed service (worker install) |
|---|---|---|
| macOS | Supported | Supported — launchd-user agent |
| Linux | Supported | Supported — systemd --user unit |
| Windows | Supported | Not supported — use worker start under your own supervisor |
macOS
Workers are installed as a launchd user agent under ~/Library/LaunchAgents/. launchd-user agents survive logout natively on macOS — there is nothing extra to configure. The service starts automatically on the next login after worker install.
# Verify the service is registered
launchctl list | grep justtunnel
# Manually restart if the service is misbehaving
launchctl kickstart -k gui/$(id -u)/com.justtunnel.worker.<name>
Flags --no-linger and --non-interactive are accepted but have no effect on macOS. The CLI emits a stderr warning if you pass them, so scripted callers can catch the misuse.
Linux
Workers are installed as a systemd --user unit. By default the service runs only while you are logged in. To keep it running after logout, enable user-linger.
User-linger
When worker install runs, the installer prompts whether to enable linger. Your options:
- Approve the prompt —
loginctl enable-linger $USERruns automatically. The service stays up after logout and across reboots. --no-linger— skips the prompt and accepts session-bound behavior. The service stops when you log out.--non-interactive— equivalent to--no-linger; use in CI and provisioning scripts.
To enable linger manually after a --no-linger install:
sudo loginctl enable-linger $USER
To confirm linger is enabled:
loginctl show-user $USER | grep Linger
# Linger=yes
Useful commands
# Show unit status
systemctl --user status justtunnel-worker-<name>
# Restart the unit
systemctl --user restart justtunnel-worker-<name>
# View service logs (alternative to `worker logs`)
journalctl --user -u justtunnel-worker-<name> -f
Windows
worker install is not supported on Windows. The managed-service path requires a platform service supervisor; the Windows adapter is not yet implemented.
Alternatives:
- Task Scheduler — create a task that runs
justtunnel worker start <name>on user login. Set it to restart on failure. - NSSM (Non-Sucking Service Manager) — wraps
worker startas a Windows service that starts on boot. - Foreground with your own runner — run
worker start <name>in a terminal or from a startup script.
In all cases, worker create <name> first to register the worker server-side. Then use your chosen supervisor to keep worker start <name> running.
Related
- Install & manage — step-by-step walkthrough for macOS and Linux.
- Troubleshooting — common errors including linger and supervisor issues.
justtunnel worker— full command reference.