Napisałem tę prostą usługę systemową, aby uruchomić moją aplikację przy starcie systemu:
[Unit]
Description=Autostart
After=multi-user.target
[Service]
Environment=LD_LIBRARY_PATH=/home/pi/bin
ExecStart=/home/pi/bin/Server
Restart=on-failure
RestartSec=3
User=root
Group=root
[Install]
WantedBy=multi-user.target
Włączyłem usługę i uruchomiłem ponownie. Po uruchomieniu MyApp nie działa, a status usługi jest „martwy”:
● autostart.service - Autostart
Loaded: loaded (/lib/systemd/system/autostart.service; enabled; vendor preset: enabled)
Active: inactive (dead)
bez dalszych wskazówek. O ile wiem, czy moja aplikacja ulega awarii, status powinien zgłosić kod błędu wyjścia. Ponadto powinien zrestartować się po 3 sekundach.
Zamiast tego ręczne uruchomienie usługi prowadzi do oczekiwanego zachowania:
● autostart.service - Autostart
Loaded: loaded (/lib/systemd/system/autostart.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2017-10-20 12:06:39 CEST; 2min 32s ago
Main PID: 1189 (Server)
CGroup: /system.slice/autostart.service
├─1189 /home/pi/bin/Server
└─1198 /home/pi/bin/Client
Oct 20 12:06:40 localhost Server[1189]: some output from my application
Jak debugowałbyś takie zachowanie?