[RISOLTO] Uso di rc.local

Ottimizzazione, pulizia, gestione e manutenzione di una Debian Box
Aki
Hero Member
Hero Member
Messaggi: 9970
Iscritto il: 27/12/2007, 16:59

Re: Uso di rc.local

Messaggio da Aki »

andrea.deroni ha scritto: e la cosa interessante, mi sembra è la riga

Codice: Seleziona tutto

Jun  3 15:14:24 Archimede rc.local[525]: Can't open display
che non so spiegarmi ma direi che il centro della questione, che potrebbe spiegare come mai xorg.conf non ha esito.
In effetti in tutti i boot si ritrova la stessa sequenza di righe nel log ...
che ne pensi?
Mi sembra perfettamente normale. Ipotizzando (non ne hai inviato il contenuto) che nel file /ect/rc.local hai inserito come comando xrandr , lo stesso è avviato con privilegi amministrativi e/o è avviato con il server X non ancora avviato (ricordi cosa ho scritto nei precedenti messaggi di questa discussione rispetto alla tempistica di avvio automatico ?) In entrambi i casi (privilegi amministrativi e/o server X non ancora avviato), non è valorizzata la variabile d'ambiente DISPLAY (che contiene il riferimento per il client al server X a cui collegarsi), da cui l'errore che risulta nel log ("Can't open display"). Il messaggio di errore è quasi certamente prodotto da xrandr.
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Debian - The universal operating system
⢿⡄⠘⠷⠚⠋⠀ https://www.debian.org
⠈⠳⣄⠀
andrea.deroni
Newbie
Newbie
Messaggi: 25
Iscritto il: 15/05/2020, 22:02

Re: Uso di rc.local

Messaggio da andrea.deroni »

Non avevo riportato qui il contenuto di rc.local perché pensavo che non ci fosse nulla di notevole. Eccolo

Codice: Seleziona tutto

xrandr --newmode "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
xrandr --addmode VGA-1 "1280x1024_60.00"
xrandr --output VGA-1 --mode "1280x1024_60.00"
Avevo immaginato che potessero entrarci i privilegi di amministrazione ma anche che in fase di boot fossero attivi: avevo anche immaginato, vagamente a dire il vero, che il problema fosse legato alla variabile DISPLAY, ma più per questioni di accesso che non di attribuzione di valori (sono tutt'altro che esperto, ho le idee vaghe su questo).

C'è un modo per aggirare il problema?
Aki
Hero Member
Hero Member
Messaggi: 9970
Iscritto il: 27/12/2007, 16:59

Re: Uso di rc.local

Messaggio da Aki »

andrea.deroni ha scritto:Non avevo riportato qui il contenuto di rc.local perché pensavo che non ci fosse nulla di notevole. Eccolo:

Codice: Seleziona tutto

xrandr --newmode "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
xrandr --addmode VGA-1 "1280x1024_60.00"
xrandr --output VGA-1 --mode "1280x1024_60.00"
Credo che sia importante poter disporre dello script, anche per capire esattamente quali istruzioni hai impartito e perché potrebbe essere di interesse ad altri frequentatori del forum che incorressero nelle stesse tue esigenze.
andrea.deroni ha scritto:Avevo immaginato che potessero entrarci i privilegi di amministrazione ma anche che in fase di boot fossero attivi: avevo anche immaginato, vagamente a dire il vero, che il problema fosse legato alla variabile DISPLAY, ma più per questioni di accesso che non di attribuzione di valori (sono tutt'altro che esperto, ho le idee vaghe su questo).
Nel caso dell'utenza amministrativa, non è un legata ai permessi, ma alla mancata dichiarazione della variabile DISPLAY nell'enviroment del processo che avvia /etc/rc.local, trattandosi di un servizio (le utenze amministrative non hanno questa variabile definita in quanto di norma non si usano per avviare programmi utente che utilizzano il server X).
andrea.deroni ha scritto:C'è un modo per aggirare il problema?
Quasi tutti i desktop enviroment (gnome, kde, xfce, etc.) prevedono una funzione di configurazione di sistema in cui poter specificare i programmi (ad esempio, anche script) da avviare alla partenza della sessione.

In alternativa, come richiamato in un precedente messaggio della discussione, per lanciare uno script all’avvio della sessione grafica, puoi seguire i suggerimenti indicati in https://wiki.debian.org/Xsession. In particolare, potresti creare nella tua home una file chiamato ~/.xsessionrc (se non già esistente) dove inserire i comandi xrandr che ti interessa eseguire all'avvio della sessione.

Per cortesia, quando possibile, aggiorna la discussione.
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Debian - The universal operating system
⢿⡄⠘⠷⠚⠋⠀ https://www.debian.org
⠈⠳⣄⠀
andrea.deroni
Newbie
Newbie
Messaggi: 25
Iscritto il: 15/05/2020, 22:02

Re: Uso di rc.local

Messaggio da andrea.deroni »

Rispondo in ordine inverso all'ultimo messaggio

Volentieri aggiorno la discussione ma non so né cosa voglia dire né come si faccia (ho cercato fra le regole del forum ma non ho trovato nulla a riguardo).

il mio file rc.local è semplicissimo:

Codice: Seleziona tutto

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
xrandr --newmode "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
xrandr --addmode VGA-1 "1280x1024_60.00"
xrandr --output VGA-1 --mode "1280x1024_60.00"
exit 0


e ho capito che non può funzionare perché implica il riferimento alla variabile DISPLAY cui non è ancora assegnato il valore.

Riassumo in modo essenziale la vicenda

ho bisogno di supplire a un problema di risoluzione del monitor all'avvio;
so farlo con uno script lanciato "a mano" che contiene comandi xrandr;
volevo automatizzarlo ed ho provato a seguire la guida http://guide.debianizzati.org/index.php ... _in_Debian MA non ha funzionato: il mio script non è un servizio di sistema;
ho provato a usare rc.local, ma non può funzionare data la sequenza di eventi di avvio del sistema grafico.

Mi resta da provare con xsession ... poi getto la spugna, ringraziando per l'aiuto e i suggerimenti.
andrea.deroni
Newbie
Newbie
Messaggi: 25
Iscritto il: 15/05/2020, 22:02

Re: Uso di rc.local

Messaggio da andrea.deroni »

Dunque, mi sembra di avere capito che:
- gli scritp in /etc/X11/Xsession.d siano eseguiti in ordine e che l'ordinamento sia definito in modo semplice dalla numerazione in prefisso;
- non c'è bisogno della dichiarazione iniziale #!bin/sh perché sono mandati in esecuzone uno dopo l'altro, proprio perché sono in Xsession.d
- nessuno degli script ha il bit che li qualifica come eseguibili (x non è presente nella lista degli attributi di nessuno degli script presenti), perciò ho eliminato la proprietà di eseguibilità anche al mio

Visto questo ho nominato il mio script come 99yris_pred, che dovrebbe collocalrlo come ultimo in ordine di esecuzione e dentro ci ho messo i soliti comandi basati su xrandr che ho messo nel file rc.local di cui si è parlato ei messaggi precedenti.

Nessun risultato apprezzabile.

Stimo dunque di essere troppo impreparato e rozzo per potermi cimentare con queste cose ...

P.s. Forse "aggiornare la discussione" vuol dre cambiare il titolo, visto che rc.local non è più il centro di attenzione?
Aki
Hero Member
Hero Member
Messaggi: 9970
Iscritto il: 27/12/2007, 16:59

Re: Uso di rc.local

Messaggio da Aki »

Per quanto riguarda l'oggetto della discussione, direi che il sistema come configurato funziona (anche se non hai raggiunto il risultato desiderato). In questo senso, per altri utenti interessati ad analogo quesito (usare rc.local per avviare uno script durante l'avvio del sistema operativo), direi che la discussione può considerarsi "risolta".
Stimo dunque di essere troppo impreparato e rozzo per potermi cimentare con queste cose ...
Non sarei così categorico, diciamo che forse potresti provare a seguire i suggerimenti forniti.

Infatti, ti avevo suggerito:
In particolare, potresti creare nella tua home una file chiamato ~/.xsessionrc (se non già esistente) dove inserire i comandi xrandr che ti interessa eseguire all'avvio della sessione.
Hai provato ?

Infine, ti avevo suggerito in alternativa:
Quasi tutti i desktop enviroment (gnome, kde, xfce, etc.) prevedono una funzione di configurazione di sistema in cui poter specificare i programmi (ad esempio, anche script) da avviare alla partenza della sessione.
Hai provato ?
P.s. Forse "aggiornare la discussione" vuol dre cambiare il titolo, visto che rc.local non è più il centro di attenzione?
Aggiornare la discussione intendevo... aggiornare la discussione. Non credo che cambiare il titolo della discussione sia appropriato, in quanto il titolo della discussione è specifico e per tale titolo è stata data risposta con esito, per il quesito in sé, favorevole ed utile ad altri frequentatori del forum.
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Debian - The universal operating system
⢿⡄⠘⠷⠚⠋⠀ https://www.debian.org
⠈⠳⣄⠀
andrea.deroni
Newbie
Newbie
Messaggi: 25
Iscritto il: 15/05/2020, 22:02

Re: Uso di rc.local

Messaggio da andrea.deroni »

E' vero, non ho seguito i tuoi suggerimenti "subito" perché significava affrontare nuove difficoltà mentre stavo ancora cercando di chiarirmi le idee sulle cose che non avevano funzionato.
Adesso che ho risolto la questione principale (vedi l'altro post, sulla risoluzione del monitor), mi dedico serenamente alla esplorazione delle cose che mi hai indicato.

Non ho capito ancora cosa intendi con "aggiornare la discussione...

Devo scrivere RISOLTO su questo post?

Infine ti ringrazio
Aki
Hero Member
Hero Member
Messaggi: 9970
Iscritto il: 27/12/2007, 16:59

Re: Uso di rc.local

Messaggio da Aki »

Felice tu abbia risolto. Sì, credo la discussione andrebbe contrassegnata come risolta.
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Debian - The universal operating system
⢿⡄⠘⠷⠚⠋⠀ https://www.debian.org
⠈⠳⣄⠀
Rispondi