Starthilfe beim Raspberry gesucht [gelöst]

Begonnen von andies, 13 Oktober 2022, 16:38:10

Vorheriges Thema - Nächstes Thema

andies

Ich benötige mal wieder Eure Hilfe. Ich habe einen RPi mit Bullseye
Linux raspheizung 5.15.61+ #1579 Fri Aug 26 11:08:59 BST 2022 armv6l GNU/Linux
und ich möchte, dass dort im Startskript Programme automatisch gestartet werden. Starte ich sie per Hand, funktioniert alles. Nur der automatische Start funktioniert einfach nicht und die Suche im Netz ist so verwirrend, dass ich da nicht klar komme. Meine beiden Probleme beschreibe ich hier mal.

1) Ich möchte ein python-Skript starten. Das habe ich in rc.local eingetragen, aber es wird nicht ausgeführt (beim Start). In messages steht auch nichts. Ich habe keine Ahnung, wieso es nicht gestartet wird.

2) Ich möchte einen Dienst einrichten und habe in /etc/systemd/system eine vcnotrold.service Datei eingerichtet,
[Unit]
Description=vcontrold daemon
After=syslog.target systemd-udev-settle.service

[Service]
Type=forking
ExecStartPre=/bin/ls /dev/bus/usb/001
ExecStart=/usr/sbin/vcontrold -x /etc/vcontrold/vcontrold.xml
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=120
StandardOutput=null

[Install]
WantedBy=multi-user.target

Die Pfade sind korrekt. Aber
sudo systemctl start vcontrold
startet den Dienst nicht und in den Logs finde ich keinen Eintrag, warum das nicht passiert.

Kann mir jemand mal einen aktuellen Link geben, in dem ich nachlesen kann, wie das geht? Die Google-Suche liefert so viele zum Teil offensichtlich falsche Sachen, ich komme da nicht weiter.
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

betateilchen

zu 1: rc.local wird an sich nicht mehr empfohlen. Wie hast Du den Start des python skripts dort eingetragen?

zu 2: hast Du den neuen Dienst dem systemd bekanntgemacht mit "systemctl daemon-reload"?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wernieman

Zu 1. Gib uns bitte Deine rc.local
Anstatt rc.local sollte man den cron bemühen, der kennt auch ein "@reboot".
(Schnelle Suche mit Google) z.B. https://www.tecchannel.de/a/cron-linux-tools-und-befehle-beim-boot-ausfuehren,3205434

Zu 2. Wirklich alle üblichen  Verdächtigen geprüft? also unter /var/logs .......
Unter welchem User läuft der Dienst?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

andies

#3
Danke erstmal für die Hilfe. Ja, das mit der schnellen Suche hatte ich auch, aber da standen dann einander widersprechende Dinge. So, zum Thema
rc.local
-rwxr-xr-x  1 root root     457 Oct 13 15:22 rc.local
enthält

python3 /home/pi/gas_wasser.py &
exit 0

Das mit dem bekanntmachen habe ich natürlich verpennt, vermutlich lag es daran. Bei den Logs habe ich
drwxr-xr-x   6 root   root              4096 Oct 13 15:03 .
drwxr-xr-x  11 root   root              4096 Sep 22 02:24 ..
-rw-r--r--   1 root   root               762 Oct 13 13:00 alternatives.log
drwxr-xr-x   2 root   root              4096 Oct 13 13:08 apt
-rw-r-----   1 root   adm              46805 Oct 13 17:19 auth.log
-rw-r--r--   1 root   root                 0 Sep 22 02:23 bootstrap.log
-rw-rw----   1 root   utmp                 0 Sep 22 02:23 btmp
-rw-r-----   1 root   adm             193649 Oct 13 17:20 daemon.log
-rw-r-----   1 root   adm               7047 Oct 13 15:30 debug
-rw-r--r--   1 root   root             33731 Oct 13 13:08 dpkg.log
-rw-r--r--   1 root   root                 0 Sep 22 02:23 faillog
drwxr-sr-x+  3 root   systemd-journal   4096 Sep 22 02:23 journal
-rw-r-----   1 root   adm             195553 Oct 13 16:47 kern.log
-rw-rw-r--   1 root   utmp            292292 Oct 13 17:19 lastlog
-rw-r-----   1 root   adm             192545 Oct 13 17:18 messages
drwx------   2 root   root              4096 Sep 22 02:23 private
drwxr-xr-x   3 root   root              4096 Sep 22 02:06 runit
-rw-r-----   1 root   adm             398989 Oct 13 17:20 syslog
-rw-r-----   1 root   adm               1200 Oct 13 13:20 user.log
-rw-rw-r--   1 nobody dialout            854 Oct 13 17:18 vcontrold.log
-rw-rw-rw-   1 root   root                 2 Oct 13 13:22 vcontrol.log
-rw-rw-r--   1 root   utmp             20736 Oct 13 17:19 wtmp

und da kann man ja die üblichen Verdächtigen erkennen. Und die bin ich durchgegangen.

PS Der Dienst sollte unter root laufen, oder?
-rwxrwxrwx  1 root root  333 Oct 13 15:26 vcontrol.service
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

gerade neu gestartet. Beide Prozesse werden nicht neu gestartet.
sudo systemctl status vcontrol
● vcontrol.service - vcontrold daemon
     Loaded: loaded (/etc/systemd/system/vcontrol.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

betateilchen

Zitat von: andies am 13 Oktober 2022, 17:25:32
python3 /home/pi/gas_wasser.py &

Gib mal den vollständigen Pfad zu python3 mit an, vermutlich /usr/bin/python3
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

andies

Danke, und systemctl konnte ich auch klären
sudo systemctl enable vcontrol
Synchronizing state of vcontrol.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable vcontrol

FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

PS Die eigentlich wichtigste Frage: Wo informiert Ihr Euch, wenn Ihr da Probleme habt? Bitte nicht "Google", da finde ich Seiten von 1835...
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

Zitat von: betateilchen am 13 Oktober 2022, 17:29:04
Hast Du den neuen Dienst auch enabled mit "systemctl enable vcontrol"?
Hatte ich vergessen. "Enable" gibt es erst seit 1836 ;-)

Danke!
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

betateilchen

Zitat von: andies am 13 Oktober 2022, 17:25:32
gerade neu gestartet. Beide Prozesse werden nicht neu gestartet.
sudo systemctl status vcontrol
● vcontrol.service - vcontrold daemon
     Loaded: loaded (/etc/systemd/system/vcontrol.service; disabled; vendor preset: enabled)
     Active: inactive (dead)


Funktioniert der manuelle Start von der Konsole aus?

Hast Du den neuen Dienst auch enabled mit "systemctl enable vcontrol"?




Zitat von: andies am 13 Oktober 2022, 17:28:22
PS Die eigentlich wichtigste Frage: Wo informiert Ihr Euch, wenn Ihr da Probleme habt? Bitte nicht "Google", da finde ich Seiten von 1835...

Bei Google. Aber halt mit den richtigen Suchbegriffen und nicht mit welchen aus 1835.

Wobei - die generelle Funktionsweise von systemd muss ich normalerweise nicht mehr googlen.




Zitat von: andies am 13 Oktober 2022, 17:27:42
Danke, und systemctl konnte ich auch klären

funktioniert denn nun beides?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

andies

FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

betateilchen

Trotzdem solltest Du den Vorschlag beherzigen:

Zitat von: Wernieman am 13 Oktober 2022, 17:17:45
Anstatt rc.local sollte man den cron bemühen, der kennt auch ein "@reboot".
(Schnelle Suche mit Google) z.B. https://www.tecchannel.de/a/cron-linux-tools-und-befehle-beim-boot-ausfuehren,3205434
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

andies

OK, mache ich, zumal ich im crontab was habe.
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Wernieman

Anstatt mit /usr/bin/python aufzurufen, kannst Du auch mit #! arbeiten.
Also einfach in der ersten Zeile des Script ein
#!/usr/bin/python3

ZitatWobei - die generelle Funktionsweise von systemd muss ich normalerweise nicht mehr googlen.
Muß ich mich jetzt schämen, das ich dazu noch zu häufig google? Nur um sicherzugehen ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

betateilchen

Zitat von: Wernieman am 13 Oktober 2022, 17:36:07
Muß ich mich jetzt schämen, das ich dazu noch zu häufig google? Nur um sicherzugehen ...

Nö.

Zitat von: Wernieman am 13 Oktober 2022, 17:36:07
Anstatt mit /usr/bin/python aufzurufen, kannst Du auch mit #! arbeiten.
Also einfach in der ersten Zeile des Script ein
#!/usr/bin/python3

Dann solltest Du aber auch darauf hinweisen, dass man in diesem Fall die .py Datei ausführbar machen muss, sonst funktioniert es wieder nicht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!