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

immagine

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).

immagine

La definizione completa del comando per PiControl (per picockpit.com) appare così:

immagine

È 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.