Custom Systemd Services¶
Non-Docker services running on the host system.
Active Services¶
jellyfin-wake.service¶
Pre-wakes NAS drives when users open Jellyfin.
| Property | Value |
|---|---|
| Status | Enabled |
| Script | /home/monxas/scripts/jellyfin-wake-drives.py |
| Documentation | jellyfin-wake-drives.md |
periphery.service¶
Komodo Core agent for remote server management.
| Property | Value |
|---|---|
| Status | Enabled |
| Binary | /usr/local/bin/periphery |
| Config | /etc/komodo/periphery.config.toml |
alert-coordinator.service¶
Intelligent Alert System coordinator — correlaciona y enruta alertas.
| Property | Value |
|---|---|
| Status | Enabled |
html2bmp.service¶
HTML→BMP converter server para el subsistema TRMNL (pantallas e-ink).
| Property | Value |
|---|---|
| Status | Enabled |
trmnl-watcher.service¶
TRMNL auto-rotation watcher.
| Property | Value |
|---|---|
| Status | Enabled |
Servicios encontrados sin documentar (auditoría 2026-08-01)¶
ls /etc/systemd/system/*.service en VM 208 mostró bastantes más unidades custom que las
documentadas arriba. Estado real verificado con systemctl is-enabled / is-active:
| Servicio | Enabled | Active | Nota |
|---|---|---|---|
asus-exporter.service |
enabled | active | Exporter Prometheus para el router ASUS (usa ~/.ssh/asus_exporter) |
beszel-agent.service |
~~enabled~~ deshabilitado 2026-08-01 | ~~active~~ stopped | ✅ Confirmado huérfano — reportaba al servidor Beszel (LXC 249), destruido desde julio. Parado y deshabilitado. |
homelab-mqtt-bridge.service |
enabled | active | Puente Prometheus→MQTT discovery para el dashboard "mis-ordenadores" en HA |
jobhunter.service |
enabled | active | Backend de job-hunter.monxas.casa (CF Access app) |
pihole-exporter.service |
enabled | active | ⚠️ Nota: también existe un container Docker pihole-exporter (puerto 9617) — posible duplicado/legado; no investigado a fondo, dejar como TODO |
unifi-clients-exporter.service |
enabled | active | Exporter Prometheus vía UniFi Integration API (rol Ansible añadido recientemente, ver git log feat(unifi)) |
wake-on-demand.service |
enabled | active | Waker genérico 208:8477 — ver [Wake-on-demand genérico] |
bazzite-power.service |
enabled | active | Gestión WoL/apagado del PC gaming Bazzite (.141) |
rol-waker.service |
disabled | inactive | Waker específico de rol.monxas.casa, aparentemente superseded por wake-on-demand.service |
ai-tagger.service |
disabled | inactive | ⚠️ Nota: el AI Tagger "vive" en la sobremesa Windows/WSL .127, no en VM 208 — este parece un servicio huérfano/mal ubicado, no investigado |
audiomuse-analysis.service |
static | inactive | Ligado a AudioMuse (migrado a VM 208 desde bazzite 2026-07-26) |
nfs-health-monitor.service |
static | inactive | Relacionado con el playbook de cuelgues nfsd del NAS |
No se ha tocado ninguno de estos servicios — solo se documenta su existencia y estado real.
Disabled/Legacy Services¶
These services exist but are currently disabled:
docker-media-stack.service¶
Alternative to Dockge for starting all stacks on boot.
| Property | Value |
|---|---|
| Status | Disabled |
| Purpose | Start all Docker stacks at boot |
Not needed since Dockge handles stack management.
putio_move_sonarr.service / putio_move_radarr.service¶
Legacy Put.io file movers (replaced by Plundrio).
| Property | Value |
|---|---|
| Status | Disabled |
| Scripts | /home/monxas/putio/sonarr_rclone.py (missing) |
These were replaced by the Plundrio ecosystem.
Managing Services¶
# Check all custom services
systemctl list-units --type=service | grep -E "jellyfin-wake|periphery|alert-coordinator|html2bmp|trmnl-watcher|putio|docker-media"
# Enable a service
sudo systemctl enable <service>
sudo systemctl start <service>
# Disable a service
sudo systemctl stop <service>
sudo systemctl disable <service>
# View logs
journalctl -u <service> -f
journalctl -u <service> --since "1 hour ago"
Creating New Services¶
Example systemd unit file:
# /etc/systemd/system/my-service.service
[Unit]
Description=My Custom Service
After=network.target
[Service]
Type=simple
User=monxas
WorkingDirectory=/home/monxas/scripts
ExecStart=/usr/bin/python3 /home/monxas/scripts/my-script.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Then: