Production operations guide for running PixEagle on Linux/systemd platforms (Raspberry Pi, Jetson, and similar embedded Linux systems).
PixEagle supports two mutually exclusive service modes:
| Mode | Service Level | Managed By | When Used |
|---|---|---|---|
| Standalone | System (/etc/systemd/system/) |
pixeagle-service CLI |
Direct installs on any Linux |
| Platform-managed | User (~/.config/systemd/user/) |
Platform (e.g., ARK-OS) | Installed through a platform |
PixEagle auto-detects the active mode:
make initskips standalone service setup when running non-interactively (platform install)make initskips standalone service setup when a user-level service already existspixeagle-service enablerefuses to create a system-level service if a user-level one exists- Platform installers automatically disable any pre-existing standalone service
If you're using ARK-OS or another platform, skip this guide and use the platform's
web UI or systemctl --user {start|stop|status} pixeagle instead.
systemdcontrols lifecycle and restart policy (pixeagle.service)scripts/service/run.shis the systemd supervisorscripts/run.sh --no-attachlaunches PixEagle components in tmux- canonical tmux session name:
pixeagle pixeagle-serviceis the management CLI
Install the command wrapper:
sudo bash scripts/service/install.shThis installs /usr/local/bin/pixeagle-service and points it to this repo.
If you run make init, PixEagle will also walk you through:
- installing
pixeagle-service - enabling boot auto-start
- enabling SSH login hint
- optional immediate start and optional reboot validation
For first-time setup, accept the guided defaults, then reconnect once after init to confirm the SSH startup guide output.
Start/stop/restart:
pixeagle-service start
pixeagle-service stop
pixeagle-service restartInspect status:
pixeagle-service statusInspect logs (journald):
pixeagle-service logs -f
pixeagle-service logs -n 200Attach to tmux:
pixeagle-service attachDetach without stopping: Ctrl+B, then D.
Enable at boot:
sudo pixeagle-service enableDisable boot auto-start:
sudo pixeagle-service disableThe systemd unit is generated at:
/etc/systemd/system/pixeagle.serviceRecommended first-time validation after enabling auto-start:
sudo reboot
# after reconnect:
pixeagle-service statusTwo scopes are supported:
--user(default): only current/default service user--system: all users on the board (recommended for shared embedded devices)
Enable for all users:
sudo pixeagle-service login-hint enable --systemOpen a new SSH session after changing hint scope to verify output.
System-scope hint output includes:
- PixEagle ASCII banner
- host + service + boot state
- dashboard/backend URLs for each detected IPv4 interface
- git metadata (repo path, branch, commit, commit date, origin)
- quick service command references
If output still shows an older short hint format after code update, regenerate:
sudo pixeagle-service login-hint disable --system
sudo pixeagle-service login-hint enable --systemDisable for all users:
sudo pixeagle-service login-hint disable --systemEnable only for current/default user:
pixeagle-service login-hint enable --userCheck status by scope:
pixeagle-service login-hint status --user
pixeagle-service login-hint status --systemPull latest upstream changes (auto-stashes local edits, quiet output):
pixeagle-service sync
pixeagle-service sync --remote upstream --branch developReset config files to defaults (creates timestamped backups):
pixeagle-service reset-configBoth commands are also available via Makefile:
make sync
make reset-configService inactive after boot:
pixeagle-service status
pixeagle-service logs -n 200
sudo systemctl restart pixeagle.servicetmux session missing while service is active:
pixeagle-service logs -n 200
sudo systemctl restart pixeagle.serviceNeed full reinstall of management layer:
sudo bash scripts/service/install.sh uninstall
sudo bash scripts/service/install.sh
sudo pixeagle-service enableRemove wrapper and systemd unit:
sudo bash scripts/service/install.sh uninstall