Puncte:1

Cum să porniți o aplicație gui într-o fereastră openbox în afara fișierului său de rulare automată

drapel ke

TL;DR

Rulează serverul ubuntu 20.04 cu xserver-xorg x11-xserver-utils xinit openbox instalat. Pot plasa o comandă în fișierul de rulare automată al openbox și rulează bine. Acum vreau să pornesc openbox, apoi de la un demon, la un moment dat porniți o aplicație care să ruleze în fereastra openbox deschisă în prezent. Cum se obține un mâner la fereastra openbox curentă?

Detalii

Am urmat acest lucru foarte util tutorial despre cum să configurați un chioșc, este pentru un raspberry pi, l-am adaptat să ruleze pe serverul ubuntu.

Toate merg bine; un utilizator invitat se conectează automat la pornire, apoi rulează fișierul .profile al utilizatorului oaspete startx -- -nocursor, iar în fișierul openbox autostart este o comandă pentru a porni chromium. Zile fericite.

Acum doresc să mută comanda pentru a porni chromium din fișierul de pornire automată openbox și să o plasez sub controlul supervizorului (deci, dacă chromium se blochează, supervizorul va reporni automat chromium).

Din păcate, când supervizorul încearcă să pornească chromium, rulând ca utilizator invitat, nu reușește să obțină afișarea ferestrei openbox. Am verificat că în fereastra openbox, $DISPLAY este setat la „:0”.

Bănuiesc că există și alți factori în joc, că nu este doar afișajul pe care trebuie să-l setez, ci poate managerul de ferestre, clientul gui sau ceva de genul.

Fișierul de configurare a supraveghetorului:

[program:crom]
mediu = DISPLAY=":0"
comanda = chromium-browser --kiosk
startsecs=6
utilizator=oaspete
stderr_logfile=/var/log/supervisor/chromium_stderr.log
stdout_logfile=/var/log/supervisor/chromium_stdout.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=3

Deoarece rulează ca utilizator invitat, practic nu are permisiuni mici. Am verificat jurnalul de erori de supraveghere pentru aplicația chromium și nu s-a deschis /var/log/Xorg.1.log, așa că l-am modificat 777 (să rămâne la 0 octeți, deoarece nu crește), acum obținem:

xauth: timeout în fișierul de autorizare de blocare /.Xauthority

Puncte:0
drapel pl

În Ubuntu 20.04 nu aveți nevoie de Supervisord pentru a vă asigura că un program este repornit. Puteți folosi Systemd pentru a reporni un daemon eșuat. Poate ar trebui să încerci această abordare.

[Serviciu]
Restart=la eșec
RestartSec=10s

Din câte am înțeles când primești erori de genul acesta:

 timeout în fișierul de autorizare de blocare /.Xauthority

Înseamnă că acest fișier este blocat de altă aplicație.Pentru a elimina blocarea, cred că puteți folosi opțiunea -b, dar nu sunt sigur. O alta solutie ar fi sa o scoti...

De asemenea, încercați să configurați jurnalele pentru /tmp pentru /var/log/Xorg.1.log poate aplicația dvs. nu are permisiuni /var/log dar am indoielile mele...

Doar cei 2 cenți ai mei...

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.