A cosa serve ".xsession"?


62

Qual è lo scopo del .xsessionfile nella cartella principale? Cosa dovrebbe essere messo lì? Gli ambienti desktop non usano quel file e per l'avvio X dal tty c'è .xinitrc.

Risposte:


58

Se accedi in modalità testo, avvia una sessione della GUI con xinit o con lo script wrapper startx, quindi xiniteffettua le seguenti operazioni:

  • Avviare un server X (in genere tramite lo script /etc/X11/xinit/xserverrc).
  • Di solito esegui alcuni script /etc/X11(in genere /etc/X11/xinit/xinitrc), a seconda di come è impostato.
  • Esegui ~/.xinitrc, se esiste. Se non esiste, eseguire un client predefinito (tradizionalmente xterm).
  • Una volta ~/.xinitrcterminato, uccidi il server X.

Se si accede in modalità grafica su un display manager X (xdm, gdm, kdm, WDM, lightdm, ...), per tradizione, ciò che viene eseguito dopo l'accesso è alcuni script in /etc/X11poi ~/.xsession.

~/.xsessionha il ruolo di ~/.profilee ~/.xinitrccombinato: dovrebbe eseguire l'avvio iniziale della sessione (ad es. definire le variabili di ambiente), quindi avviare programmi specifici della GUI (di solito almeno il gestore delle finestre).

Al giorno d'oggi, la maggior parte dei display manager di X ti offre la possibilità di scegliere una sessione. Scegliendo una sessione particolare è stato avviato un ambiente desktop specifico, un gestore sessioni, un gestore finestre. Ciò che viene eseguito quindi è solo quel DE / SM / WM e tutti i programmi che sceglie di avviare in base ai file di configurazione che sceglie di leggere. Molti ambienti forniscono una "sessione personalizzata" che legge il tradizionale ~/.xsession.


3
Non so cosa siano questi "molti ambienti", ma almeno kdm ignora silenziosamente il file «~ / .xsession».
Ciao Angelo

1
@ Hi-Angel Il .xsessionfile viene letto solo se si seleziona un tipo di sessione particolare. So che per Gdm, gli sviluppatori upstream non vogliono includerne uno che viene eseguito .xsessiondi default e lasciarlo a ciascuna distribuzione, e molte distribuzioni non danno fastidio o non si rendono conto della necessità. Non so quale sia la situazione di kdm.
Gilles 'SO- smetti di essere malvagio' il

Bene, sai, ho scoperto in man kdm che kdm ha un proprio file /etc/kde4/kdm/Xsessionda eseguire come utente subito dopo il login. Sono bugie: il file (che è presente tra l'altro) non è mai stato toccato da kdm, l'ho persino rimosso e non ha cambiato nulla.
Hi-Angel,

1
@ Ciao-Angelo Ciò che Gilles intende è che nella schermata di accesso grafica avrai spesso un menu a discesa che elenca vari ambienti. Se scegli "KDE", verrà avviato e verrà ignorato .xsession, come hai descritto. Ma se invece di "KDE" scegli "Sessione personalizzata" .xsessionverrà eseguito invece di KDE. Lo uso, ad esempio, perché xfce4-paneleseguo just e FVWM 2 come "desktop"; se KDE fosse installato su un sistema che mi è capitato di usare, sarebbe completamente ignorato.
Curt J. Sampson,

15

L'avvio della sessione X può essere complicato in questi giorni. Un buon punto di partenza è lo script /etc/X11/Xsessionper vedere come verranno eseguite le cose.

Sui miei sistemi Debian / Ubuntu, lo script /etc/X11/Xsessionimposta la variabile USERXSESSION=$HOME/.xsession. Successivamente, lo script /etc/X11/Xsession.d/50x11-common_determine-startupcerca questo script e lo utilizza come sessione principale, se consentito dalla politica di sistema in /etc/X11/Xsession.optionse se non è stata richiesta alcuna altra sessione dal display manager.


8

Ti consiglio vivamente di dare un'occhiata al libro Guida dell'amministratore del sistema X Window: per X versione 11 . Il capitolo 2 spiega lo scopo .xsessione l'intero processo di configurazione per una configurazione di esempio. Inoltre è un piacevole aggiornamento per l'intera terminologia relativa a x-window (e spero che non ti spaventi :)). Puoi ottenere il libro da

http://archive.org/details/xwindowsystemadm08muimiss

Sebbene sia piuttosto obsoleto, puoi trovare molte informazioni sui concetti sottostanti che non sono cambiati fino ad oggi ed è molto leggibile. Inoltre è davvero divertente dare un'occhiata a ciò che è stato il massimo in quei giorni.


7

.xsession è lo script di avvio tradizionale per l'ambiente X11. Oggi con sessionmanager come kdm non è più molto utile, ma su un sistema tradizionalmente installato. Questo è ciò che viene eseguito dopo l'avvio di X11 con startx.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.