Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
systemctl stop smartpi.service funktioniert nicht
#1
Hallo,

ich habe versucht, die SmartPi Services mittels systemctl stop smartpi.service zu beenden, jedoch laufen sowohl smartpiserver als auch smartpireadout einfach weiter. Ich verwende das fertige Image.

Viele Grüße
Frank
Reply
#2
Es wird ein init.d-Skript benutzt.

sudo /etc/init.d/smartpi stop
sudo /etc/init.d/smartpi start

sollte funktionieren.

Grüße,
TriCX
Reply
#3
Hi,

ich muss da nochmal nachhaken: im aktuellen Buster-Image werden die SmartPi-Komponenten offensichtlich via systemd gestartet, denn systemctl disable smartpi hat zur Folge, dass diese nach einem Reboot nicht laufen. Nach wie vor läuft systemctl stop smartpi jedoch ins Leere, denn das Frontend bleibt erreichbar und die values- und counter-Dateien werden weiterhin befüllt.

systemctl status smartpi liefert nur 2 laufende Prozesse, auffällig ist, dass die Smartpi-Binaries da nicht dabei sind:

Code:
pi@smartpi:~ $ systemctl status smartpi.service
● smartpi.service - SmartPi
  Loaded: loaded (/etc/systemd/system/smartpi.service; enabled; vendor preset:
  Active: active (running) since Thu 2020-08-13 18:36:32 CEST; 2h 11min ago
   Tasks: 2 (limit: 2068)
  CGroup: /system.slice/smartpi.service
          ├─  544 /bin/bash /usr/local/bin/smartpi_check_umts.sh
          └─22587 sleep 300

Aug 13 18:36:20 smartpi systemd[1]: Starting SmartPi...
Aug 13 18:36:32 smartpi systemd[1]: Started SmartPi.

Viele Grüße
Frank
Reply
#4
Hierzu noch ein Update: Das scheint daran zu liegen, dass die Binaries im Startscript /usr/local/bin/smartpi mittels su aufgerufen werden:
Code:
# Actions
case "$1" in
   start)
        /sbin/ifconfig eth0:1 169.254.3.10 netmask 255.255.0.0 up
       # START
       /sbin/hwclock --hctosys
       su pi -c /usr/local/bin/smartpireadout &
       su pi -c /usr/local/bin/smartpiserver &
       su root -c /usr/local/bin/smartpimodbusserver &
       /usr/local/bin/smartpi_check_umts.sh &
       su pi -c /usr/bin/node-red &
       ;;

Wenn ich das su pi -c rausnehme, zeigt systemctl status smartpi alle Binaries und kann sie auch beenden:
Code:
pi@smartpi:/usr/local/bin $ systemctl status smartpi.service
● smartpi.service - SmartPi
  Loaded: loaded (/etc/systemd/system/smartpi.service; disabled; vendor preset:
  Active: active (running) since Sat 2020-08-15 21:02:31 CEST; 3s ago
 Process: 2365 ExecStart=/usr/local/bin/smartpi start (code=exited, status=0/SU
   Tasks: 20 (limit: 2065)
  CGroup: /system.slice/smartpi.service
          ├─2369 /usr/local/bin/smartpireadout
          ├─2370 /usr/local/bin/smartpiserver
          ├─2371 /usr/local/bin/smartpimodbusserver
          ├─2372 /bin/bash /usr/local/bin/smartpi_check_umts.sh
          └─2412 sleep 80

Aug 15 21:02:29 smartpi systemd[1]: Starting SmartPi...
Aug 15 21:02:31 smartpi systemd[1]: Started SmartPi.

Wenn die Tasks weiterhin mit Nutzer pi laufen sollen, müsste man das in der systemd-Unit so konfigurieren können. Node-RED sollte aus dem Script meiner Meinung nach ganz raus, das bringt nämlich seine eigene systemd-Unit mit und wird eh automatisch gestartet.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)