Questa sezione descrive le seguenti operazioni:
Impostazione delle variabili d'ambiente
Impostazione delle risorse
Uso di sessioni associate al display
Esecuzione di script al login
Ripristino di una sessione di backup
Per impostare una variabile d'ambiente a livello di sistema, creare un file nella directory /etc/dt/config/Xsession.d che imposti ed esporti la variabile desiderata.
Ad esempio, si potrà creare uno script ksh eseguibile /etc/dt/config/Xsession.d/var_pers, che contenga l'istruzione:
export NUOVA_VARIABILE="valore"
In questo modo la variabile NUOVA_VARIABILE
sarà impostata negli ambienti di tutti gli utenti al
login successivo.
Per impostare una variabile d'ambiente personale sarà necessario definirla nel file DirectoryIniziale/.dtprofile.
Ad esempio, l'istruzione:
export NUOVA_VARIABILE="valore"
imposterà la variabile NUOVA_VARIABILE
negli ambienti di tutti gli utenti al login successivo.
La Gestione delle sessioni non legge automaticamente il file .profile o .login. Può tuttavia essere configurata in modo da utilizzarli; vedere a questo riguardo la sezione Lettura opzionale dello script .profile o .login.
Per impostare una risorsa a livello di sistema, aggiungerla al file /etc/dt/config/lingua/sys.resources. (Se necessario, creare il file.)
.dtprofile supporta solo la sintassi della shell /bin/sh o /bin/ksh.
Ad esempio, se in /etc/dt/config/C/sys.resources si specifica l'istruzione:
Risorsa*Applicazione: valore
la risorsa Risorsa*Applicazione verrà impostata
nella proprietà RESOURCE_MANAGER
di tutti gli utenti al login successivo.
Per impostare risorse personali, aggiungere le risorse al file DirectoryIniziale/.Xdefaults.
Le risorse associate a un determinato display possono essere impostate sia a livello di sistema che per utenti specifici. In questo caso, le risorse possono essere impostate in base al display usato dall'utente per il login nel desktop.
Per impostare un insieme di risorse associato a un display per tutti gli utenti di un sistema, creare un file /etc/dt/config/lingua/sys.resources che specifichi le risorse desiderate.
Per impostare un insieme di risorse associato a un display solo per un determinato utente, specificare le risorse nel file DirectoryIniziale/.Xdefaults.
Per delimitare queste risorse sarà necessario racchiuderle tra
dichiarazioni condizionali cpp. Occorrerà definire
una macro DISPLAY_
nomedisplay basata
sul valore della variabile $DISPLAY
convertendo tutti i punti (.) e i due punti (:) in caratteri di sottolineatura
(_), eliminando tutte le informazioni associate allo schermo e infine anteponendo
la stringa DISPLAY_
al risultato.
Ad esempio, una variabile $DISPLAY
di valore :0 diventerà DISPLAY_0
, mentre una variabile $DISPLAY
di valore bianco.arcobaleno.com:0.0
diventerà DISPLAY_bianco_arcobaleno_com_0. Il valore
risultante potrà essere usato nell'ambito di un test cpp
in un file di risorse della sessione. Ad esempio, se nel file /etc/dt/config/C/sys.resources si specifica quanto segue:
Risorsa*Applicazione: valore
#ifdef DISPLAY_bianco_arcobaleno_com_0 Risorsa*Applicazione: valorespeciale1 #endif
#ifdef DISPLAY_rosa_arcobaleno_com_0 Risorsa*Applicazione: valorespeciale2 #endif
la risorsa Risorsa*Applicazione in RESOURCE_MANAGER
verrà impostata su valorespeciale1 quando l'utente effettuerà il login sul display bianco.arcobaleno.com:0 e su valorespeciale2
quando effettuerà il login su rosa.arcobaleno.com:0;
verrà invece impostata su valore quando il login
verrà eseguito su qualsiasi altro display.
Per specificare applicazioni alternative da avviare nella sessione iniziale dell'utente, procedere come segue.
Copiare /usr/dt/config/lingua/sys.session in /etc/dt/config/lingua/sys.session.
Modificare la nuova copia del file sys.session.
Ogni istruzione di sys.session apparirà nella forma:
dtsmcmd -cmd comando_e_opzioni
Per aggiungere un'applicazione nella sessione iniziale dell'utente, specificare una nuova istruzione in sys.session indicando il percorso completo del file eseguibile. Ad esempio, per avviare /usr/bin/X11/xclock in una sessione iniziale, aggiungere un'istruzione per xclock al file /etc/dt/config/C/sys.session:
# # Avvio di xclock... # dtsmcmd -cmd "/usr/bin/X11/xclock -digital"
Usando la procedura descritta qui di seguito, ogni utente può impostare una sessione associata a un determinato display.
Copiare la directory DirectoryIniziale/.dt/sessions in DirectoryIniziale/.dt/display, dove display è il nome reale e non qualificato dell'host (rosa:0 sarà un nome valido, mentre rosa.arcobaleno.com:0 o unix:0 non saranno accettati).
Ad esempio, per creare una sessione associata al display rosa.arcobaleno.com:0, digitare:
cp -r DirectoryIniziale/.dt/sessions DirectoryIniziale/.dt/rosa:0
Al login successivo dell'utente sul display rosa.arcobaleno.com:0, la Gestione delle sessioni avvierà la sessione definita con questa procedura.
Gli utenti hanno la possibilità di impostare l'esecuzione di comandi personalizzati al momento del login nel desktop. Questa opzione è particolarmente utile per specificare impostazioni X che non possono essere salvate dalla Gestione delle sessioni. Ad esempio, si potrà usare xsetroot per personalizzare il puntatore del superutente (nello spazio di lavoro), oppure per avviare applicazioni che non possono essere salvate e ripristinate dalla Gestione delle sessioni.
In genere, questo file è uno script e richiede le autorizzazioni di esecuzione. I processi avviati con sessionetc dovrebbero essere eseguiti in background.
Non usare sessionetc per avviare applicazioni client che vengono ripristinate automaticamente dalla Gestione delle sessioni, per evitare di avviare più copie della stessa applicazione. La presenza di più copie di un'applicazione potrebbe non essere immediatamente notata per la sovrapposizione delle finestre o delle icone.
Il file da utilizzare per questa procedura è sessionexit. Come per sessionetc, si potrà usare sessionexit per eseguire operazioni che non possano essere avviate dalla Gestione delle sessioni.
Creare il file DirectoryIniziale/.dt/sessions/sessionexit contenente i comandi desiderati.
Come sessionetc, questo file è generalmente uno script e richiede le autorizzazioni di esecuzione.
Quando la Gestione delle sessioni salva una sessione, le informazioni vengono memorizzate sotto DirectoryIniziale/.dt/sessions o, nel caso delle sessioni associate a un display, sotto DirectoryIniziale/.dt/display. In queste directory, la Gestione delle sessioni crea una directory secondaria di nome current o home in cui memorizza rispettivamente le informazioni della sessione corrente o di quella iniziale. Prima di memorizzare queste informazioni, la Gestione delle sessioni crea una copia di backup della sessione precedentemente salvata con quel nome e la colloca in current.old o home.old.
Effettuare il login usando l'opzione “Sessione a finestra singola” o “Login dalla riga di comando” della videata di login.
Copiare la directory della sessione di backup nella directory attiva. Ad esempio, per ripristinare la sessione iniziale di backup, digitare:
cp -r DirectoryIniziale/.dt/sessions/home.old \ DirectoryIniziale/.dt/sessions/home
La stessa procedura può essere usata per ripristinare una sessione associata a un display.
La Gestione delle sessioni registra in questo file le procedure di avvio di tutte le sessioni degli utenti.