Chromium-Exit-Code -5

Während der Ausführung von Chromium mit

chromium-browser -display=:0 https://www.picockpit.com

ermöglicht es Ihnen, Chromium über eine SSH-Verbindung zu starten (und es wird auf dem Hauptbildschirm des X-Servers ausgegeben). scheitern wenn Sie versuchen, es mit subprocess.Popen in Python auszuführen:

"Befehl": ["chromium-browser", "-display=:0", "https://picockpit.com"]

(dies ist Teil des JSON-Formats, das ich für PiControl spezifiziert habe - die Hauptidee ist, dass dieses Array an subprocess.Popen übergeben wird).

Der eigentliche Aufruf zur Ausführung des Befehls lautet:

proc = subprocess.Popen(
     cmd,
     stdout=subprocess.PIPE,
     stderr=subprocess.PIPE,
     preexec_fn=demote(user, uid, gid)
)

Chromium beendet sich sofort mit einer Fehlerstatuscode von -5. (Und ja, der Benutzer und die Gruppe sind auf pi eingestellt, und die zusätzlichen Gruppenmitgliedschaften für den Benutzer sind eingestellt).

Aktualisierung 28.5.2020

Chromium scheint zu laufen, wenn picockpit-client als Dienst ausgeführt wird. Wenn ich picockpit-client teste, indem ich es manuell starte (über eine SSH-Verbindung), beendet sich Chromium mit dem Code -5.

Das wird also auch funktionieren:

chromium-browser -display=:0 -kiosk https://picockpit.com

Bild

Eine Lösung für das Problem, dass Chrome sich mit "-5" beendet, habe ich daher nicht - da es aber im normalen Betriebsmodus von PiCockpit nicht auftritt, lohnt es sich im Moment nicht, weiter danach zu suchen.

Bitte beachten Sie die nachstehenden Informationen nicht, ich lasse sie hier nur zu Referenzzwecken stehen.

Alte Informationen

Ich habe keine Dokumentation über Chromium-Exit-Codes gefunden, Ich habe jedoch eine Lösung gefunden für diese besonderes Problem (und die Ihnen auch bei der Fehlersuche in anderen Exit-Codes helfen sollte) (Update 28.5.: Dies ist keine Lösung für dieses spezielle Problem, und leider ist Breakpad bei "normalen" Builds deaktiviert, was die Fehlersuche erschwert) .

"Befehl": ["chromium-browser", "-display=:0", "-enable-logging=stderr", "-kiosk", https://picockpit.com]

(der -kiosk-Teil ist optional - er startet Chromium im Kiosk-Modus, d.h. ohne URL-Leiste, im Vollbildmodus, um zu verhindern, dass der Benutzer Ihre Anwendung auf öffentlichen interaktiven Kiosken "verlässt").

Bild

Die vollständige Befehlsdefinition für PiControl (für picockpit.com) sieht wie folgt aus:

Bild

Sie ist in einer JSON-Datei auf dem jeweiligen Pi enthalten. Auf diese Weise können Sie viele verschiedene Befehle (die als Schaltflächen im Webinterface angezeigt werden) für den Raspberry Pi definieren, indem Sie einfach eine JSON-Datei bearbeiten.

Wir beraten für die Raspberry Pi Plattform (Hardware- und Softwareentwicklung, Geschäftskonzepte) und alles rund um den Raspberry Pi! Bitte nehmen Sie noch heute Kontakt mit uns auf.