Codice di uscita di Chromium -5
Mentre si esegue Chromium con
chromium-browser -display=:0 https://www.picockpit.com
vi permetterà di avviare Chromium da una connessione SSH (e l'output sarà sul display principale del server X), questo fail quando si cerca di eseguirlo con subprocess.Popen in Python:
"comando": ["chromium-browser", "-display=:0", "https://picockpit.com"]
(questo fa parte del formato JSON che ho specificato per PiControl - l'idea principale è che questo Array è passato in subprocess.Popen).
La chiamata effettiva per eseguire il comando è:
proc = subprocess.Popen(
cmd,
stdout=subprocesso.PIPE,
stderr=subprocesso.PIPE,
preexec_fn=demote(user, uid, gid)
)
Chromium uscirà immediatamente con un codice di stato di errore di -5. (E sì, l'utente e il gruppo sono impostati su pi, e le appartenenze di gruppo aggiuntive per l'utente sono impostate).
Aggiornamento 28.5.2020
Chromium sembra funzionare quando picockpit-client viene eseguito come servizio. Se provo picockpit-client lanciandolo manualmente (da una connessione SSH), Chromium esce con il codice -5.
Anche questo, quindi, funzionerà:
chromium-browser -display=:0 -kiosk https://picockpit.com
Non ho quindi una soluzione per il problema con Chrome che esce con "-5" - ma dato che non si verifica nella modalità di funzionamento normale di PiCockpit, non vale la pena continuare a cercare per il momento.
Si prega di ignorare le informazioni qui sotto, le sto lasciando qui solo a scopo di riferimento.
Vecchie informazioni
Non ho trovato documentazione sui codici di uscita di Chromium, Tuttavia ho trovato una soluzione per questo problema particolare (e che dovrebbe anche aiutarvi a fare il debug di altri codici di uscita) (Aggiornamento 28.5.: questo non è un fix per questo particolare problema, e sfortunatamente Breakpad è disabilitato sulle build "normali", il che rende il debug più difficile) .
"comando": ["chromium-browser", "-display=:0", "-enable-logging=stderr", "-kiosk", https://picockpit.com]
(la parte -kiosk è opzionale - avvierà Chromium in modalità kiosk, cioè senza barra URL, a schermo intero, per evitare che l'utente "scappi" dalla tua applicazione sui chioschi interattivi rivolti al pubblico).
La definizione completa del comando per PiControl (per picockpit.com) appare così:
È contenuto in un file JSON sul particolare Pi. In questo modo, sarete in grado di definire molti comandi diversi (che appariranno come pulsanti nell'interfaccia web) per il Raspberry Pi semplicemente modificando un file JSON.
Facciamo consulenza per la piattaforma Raspberry Pi (sviluppo hardware e software, concetti di business), e tutte le cose Raspberry Pi! Si metta in contatto con noi oggi stesso.