Solaris CDE - Guide avancé de l'utilisateur et de l'administrateur système

Autres personnalisations du lancement d'une session

Cette section traite des sujets suivants :

Définition de variables d'environnement

    Pour définir des variables d'environnement système, créez un fichier dans le répertoire /etc/dt/config/Xsession.d permettant de définir et d'exporter la variable.

Par exemple, si vous créez un script ksh exécutable, /etc/dt/config/Xsession.d/mesvars, contenant :

	export VARIABLE="valeur"

la variable VARIABLE sera définie dans chaque environnement utilisateur à la prochaine connexion.

    Pour définir des variables d'environnement personnelles, définissez-les dans RépPersonnel/.dtprofile.

Par exemple :

	export VARIABLE="valeur"

définit la variable VARIABLE dans chaque environnement utilisateur à la prochaine connexion.


Remarque :

le Gestionnaire de sessions ne lit pas automatiquement le fichier .profile ou .login. Cependant, il peut être configuré de façon à utiliser ces fichiers (voir la section Lancement facultatif du script .profile ou .login).


Définition des ressources

    Pour définir des ressources système, ajoutez-les au fichier /etc/dt/config/langue/sys.resources (vous devrez peut-être créer ce fichier).


Remarque :

.dtprofile ne supporte que la syntaxe /bin/sh ou /bin/ksh.


Par exemple, si vous définissez la ressource suivante dans le fichier /etc/dt/config/C/sys.resources :

	AnApplication*resource: valeur

la ressource AnApplication*resource sera définie dans la propriété RESOURCE_MANAGER de chaque utilisateur à la prochaine connexion.

    Pour définir des ressources personnelles, ajoutez-les au fichier RépPersonnel/.Xdefaults.

Définition de ressources spécifiques à un poste de travail

Vous pouvez définir des ressources spécifiques à un poste de travail pour tous les utilisateurs de bureau du système. Les utilisateurs peuvent également définir des ressources spécifiques à un poste de travail qui soient limitées à leur session. Vous pouvez ainsi faire varier les ressources en fonction du poste de travail utilisé pour la connexion au système.

    Pour définir des ressources spécifiques à un poste de travail pour tous les utilisateurs du système, créez un fichier /etc/dt/config/langue/sys.resources définissant ces ressources.

    Pour définir des ressources spécifiques à un poste de travail pour un utilisateur donné, définissez les ressources dans RépPersonnel/.Xdefaults.

    Ces ressources doivent être incluses dans des instructions conditionnelles de type cpp. Une macro DISPLAY__nom_écran est définie en fonction de la valeur de la variable $DISPLAY. Cette macro convertit tous les points (.) et les deux-points (:) en caractères de soulignement (_), supprime toute spécification relative à l'écran et attribue le préfixe DISPLAY_ au résultat.

    Par exemple, si la variable $DISPLAY a pour valeur :0, le nom de la macro sera DISPLAY_0 ; si la variable $DISPLAY a pour valeur blanco.gato.com:0.0, le nom de la macro sera DISPLAY_blanco_gato_com_0. Le résultat peut être utilisé comme partie d'un test cpp dans un fichier de ressources de la session. Par exemple, si vous définissez la ressource suivante dans le fichier /etc/dt/config/C/sys.resources :

    Myapp*resource: value
    #ifdef DISPLAY_blanco_gato_com_0
     Myapp*resource: specialvalue1
     #endif
    #ifdef DISPLAY_pablo_gato_com_0
     Myapp*resource: specialvalue2
     #endif

    la ressource MyApp*resource aura, dans RESOURCE_MANAGER, la valeur specialvalue1 lorsque l'utilisateur se connectera à l'écran blanco.gato.com:0, et specialvalue2 lorsqu'il se connectera à l'écran pablo.gato.com:0;, et value lorsqu'il se connectera à un autre écran.

Modification des applications de la session initiale

Vous pouvez intégrer d'autres applications à la session initiale de l'utilisateur.

  1. Copiez /usr/dt/config/langue/sys.session dans /etc/dt/config/langue/sys.session.

  2. Modifiez le nouveau fichier sys.session.

    chaque entrée de sys.session apparaît sous la forme :

    	dtsmcmd -cmd commande_et_options
    

    Pour ajouter une application à la session initiale d'un utilisateur, créez une nouvelle entrée sys.session avec son chemin d'accès complet. Par exemple, pour lancer /usr/bin/X11/xclock dans la session initiale d'un utilisateur, ajoutez une entrée xclock à /etc/dt/config/C/sys.session :

     	# Start up xclock...
     	#dtsmcmd -cmd "/usr/bin/X11/xclock -digital"

Configuration d'une session spécifique à un poste de travail

L'utilisateur peut configurer une session spécifique pour adapter une session à un poste de travail particulier.

    Copiez le répertoire RépPersonnel/.dt/sessions vers le répertoire RépPersonnel/.dt/écran, où écran représente le nom réel de la machine (par exemple, pablo:0 est correct, pablo.gato.com:0 ou unix:0 ne l'est pas).

Par exemple, pour créer une session spécifique au poste de travail pablo.gato.com:0 :

cp -r RépPersonnel/.dt/sessions RépPersonnel/.dt/pablo:0

Lorsque l'utilisateur se connecte ensuite à l'écran pablo.gato.com:0, le Gestionnaire de sessions lance la session spécifique à ce poste de travail.

Exécution d'autres commandes lors de l'ouverture et de la fermeture de la session

L'utilisateur peut demander le lancement de commandes supplémentaires lorsqu'il se connecte à sa session. Cela est particulièrement utile pour configurer des paramètres X qui ne sont pas sauvegardés par le Gestionnaire de sessions. Par exemple, il peut utiliser xsetroot pour personnaliser l'aspect du pointeur de la souris dans la fenêtre principale (c'est-à-dire, dans l'espace de travail). Il peut également lancer des applications qui ne peuvent pas être sauvegardées ou restaurées par le Gestionnaire de sessions. Si une application n'est pas redémarrée lors de la restauration de la session, l'utilisateur peut la démarrer de cette façon.

Exécution d'autres commandes au démarrage de la session

    Créez le fichier RépPersonnel/.dt/sessions/sessionetc contenant les commandes.

Généralement, ce fichier est un script et doit disposer des droits d'exécution appropriés. Les processus lancés dans sessionetc doivent être exécutés en arrière-plan.


Remarque :

n'utilisez pas sessionetc pour lancer des clients restaurés automatiquement par le Gestionnaire de sessions. Sinon, vous risquez de lancer plusieurs copies d'une même application. Vous ne le remarquerez peut-être pas tout de suite, car les fenêtres des copies peuvent se chevaucher.


Exécution d'autres commandes à la déconnexion

sessionexit est un fichier associé à sessionetc. Utilisez-le pour effectuer certaines opérations qui ne sont pas prises en charge par le Gestionnaire de sessions, lorsque vous quittez une session.

    Créez le fichier RépPersonnel/.dt/sessions/sessionexit contenant les commandes.

Tout comme sessionetc, ce fichier est généralement un script accessible en exécution.

Récupération d'une session à partir d'une sauvegarde

Lorsque le Gestionnaire de sessions sauvegarde une session, les informations s'y rapportant sont stockées dans le répertoire RépPersonnel/.dt/sessions ou RépPersonnel/.dt/écran si vous utilisez une session spécifique à un poste de travail. Le Gestionnaire de sessions crée, dans ces répertoires, un sous-répertoire appelé current ou home permettant de stocker les informations respectives des sessions en cours ou personnelles. Avant le stockage des informations, le Gestionnaire de sessions effectue une sauvegarde de la session précédente sous ce nom et la stocke dans current.old ou home.old.

  1. Connectez-vous en utilisant la session monofenêtre ou la connexion à partir de la ligne de commande sur l'écran de connexion.

  2. Copiez le répertoire de la session de sauvegarde vers le nom courant. Par exemple, pour récupérer une session personnelle de sauvegarde :

    	cp -r RépPersonnel/.dt/sessions/home.old \
     	RépPersonnel/.dt/sessions/home

    Les sessions spécifiques à un poste de travail peuvent être récupérées de la même manière.

Analyse des problèmes survenant lors du lancement d'une session

    Vérifiez le fichier RépPersonnel/.dt/startlog.

Le Gestionnaire de sessions consigne dans ce fichier les différentes phases du lancement des sessions de chaque utilisateur.