1. Systemd-Service-Datei generieren
Fishnet kann die .service-Datei selbst ausgeben. Wir erstellen das Verzeichnis für User-Services und leiten die Ausgabe direkt in eine neue Datei um:
mkdir -p ~/.config/systemd/user/
./fishnet systemd --auto-update > ~/.config/systemd/user/fishnet.service
2. Service-Datei überprüfen/anpassen
Da wir den Service im Verzeichnis /home/USER/fishnet liegen haben, müssen wir sicherstellen, dass die Pfade in der generierten Datei stimmen. Öffne die Datei mit micro:
micro ~/.config/systemd/user/fishnet.service
Achte darauf, dass die Zeile ExecStart auf den absoluten Pfad deiner Binärdatei zeigt und das WorkingDirectory korrekt ist. Es sollte in etwa so aussehen:
Debian
[Unit]
Description=Fishnet Lichess Analysis Client
After=network.target
[Service]
Type=simple
WorkingDirectory=/home/USER/fishnet
ExecStart=/home/USER/fishnet/fishnet --auto-update
Restart=always
RestartSec=10
[Install]
WantedBy=default.target
(Falls WorkingDirectory oder der Pfad bei ExecStart nicht stimmen, passe sie einfach kurz an und speichere mit Strg+S und schließe mit Strg+Q).
CashyOS
[Unit]
Description=Fishnet client
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/home/USER/.local/bin/fishnet --auto-update --conf /home/USER/.local/bin/fishnet.ini --stats-file /home/USER/.local/bin/.fishnet-stats run > /home/USER/local/bin/fishnet.log 2>&1
KillMode=mixed
WorkingDirectory=/tmp
User=USER
CapabilityBoundingSet=
PrivateTmp=true
PrivateDevices=true
DevicePolicy=closed
ProtectSystem=full
NoNewPrivileges=true
Restart=on-failure
[Install]
WantedBy=multi-user.target
3. Service aktivieren und starten
Jetzt laden wir den Systemd-Daemon für deinen User neu, aktivieren den Autostart und starten Fishnet direkt:
systemctl --user daemon-reload
systemctl --user enable fishnet.service
systemctl --user start fishnet.service
4. Status überprüfen
Ob alles sauber im Hintergrund läuft, siehst du mit diesem Befehl:
systemctl --user status fishnet.service
Wenn du die Live-Logs (wie vorhin im Terminal) sehen willst, nutzt du journalctl:
journalctl --user -u fishnet.service -f
5. Wichtig für VPS (Dauerhaftes Laufen aktivieren)
Standardmäßig beendet Debian User-Services, sobald sich der Benutzer per SSH ausloggt. Damit Fishnet auch weiterrechnet, wenn du die SSH-Verbindung trennst, müssen wir das sogenannte "Lingering" für deinen User aktivieren.
Dazu benötigst du einmalig sudo:
sudo loginctl enable-linger USER
Damit läuft dein Fishnet-Client nun absolut autark, aktualisiert sich selbst und startet auch nach einem Reboot des VPS automatisch wieder im Hintergrund!