Lancer un programme sur un autre serveur X

Si vous utilisez compiz, ou si vous voulez lancer un jeu sur un second serveur X pour éviter tout bug, ou avoir toujorus accès au bureau même si c’est en plein écran, voici une solution :

[code]#!/bin/sh
#script pour lancer une commande sur un second serveur X
#si besoin : dpkg-reconfigure x11-common
SB="#4b555e"
SF="#A6BBCF"
NB="#08090a"
NF="#4b555e"
FN=“fixed"
PROGRAM=$(dmenu_path |dmenu -fn $FN -nb $NB -nf $NF -sb $SB -sf $SF -i -p “Lancer sur 2e X :”)
echo “*** On démarre $PROGRAM sur le second X ***”
[ -z $PROGRAM ]
if [ $? = 1 ]; then
GDM=$(ps axo comm | grep gdm)
case $GDM in
"gdm” )
echo “impossible pour l’instant avec gdm”
;;
* )
startx $PROGRAM – :1
;;
esac
fi

exit

[/code]
Ce script utilise dmenu, mais vous pouvez simplement utiliser la commande

Votre bureau sera accessible via ctrl+alt+F7, et le nouveau serveur via ctrl+alt+F8
Si besoin, faire un :

Pour autoriser votre utilisateur à lancer un autre X

Salut,

C’est super ton truc! pourquoi pause-café et non T&A ?

C’est aussi mon avis.
MisterFreez, tu déplaces ?

Avant d’aller directement dans Trucs et Astuces, il faut être sûr que le script/commande est bon(ne), qu’il n’y a pas de soucis de sécurité, des avertissements ou autre à ajouter. Enfin je pensais préférer être sûr que cela convienne à tout le monde :slight_smile:

Ok, laisse-le ici en test et si c’est concluant, on déplacera par la suite.

Jouons sur les mots : j’avais compris “un autre serveur X” comme une autre machine sur le réseau faisant office de serveur X
à laquelle un client se connecterait, je préciserai “commencer une deuxième session X sur le même système, la même machine”.

Un point de pinaillage technique :

La commande

$ startx – :2

:2 correspond à un troisième affichage si on s’en tient à cet ordre :

:0 = premier
:1 = second
:2 = troisième

Ça ne prête pas à conséquence dans ce scénario, on obtient un second affichage en sautant :1 au passage
La commande se réalise bien que le DISPLAY :1 soit inactif.

Une précision à porter : ne pas lancer depuis une session graphique déjà ouverte mais depuis un terminal virtuel (ctr+alt+F2)

Merci pour les précisions.
Cependant, pourquoi ne pas lancer à partir d’une session graphique déja ouverte? Ça marche bien pour moi pourtant…

Tu dois sans doute directement utiliser xinit.
En gdm c’est impossible par défaut (kdm ? pas testé ).
L’utilisation de gdm l’empêche en verrouillant la session à son environnement confiné avec des variables “de confiance”.
Un seul DISPLAY = "Sécurité"
Plusieurs DISPLAY = “Risques”

Quels risques ? ça dépend, dans le cas présent mis à part des maladresses involontaires infligées à soi même on ne risque rien mais cette soi-disant “sécurité” est surtout voulue en regard de X en réseau .
Dévoiler des informations devenues visibles à la terre entière, se faire détourner des contenus , dévoyer une application graphique, lancer 36000 glxgears pour voir quand ça flanche …
tu pourrais te faire déborder par une farceur bon enfant ou un cracker malveillant plus renseigné pour mener des actions moins anodines que l’exemple du glxgears donné .

Tant que ça ne sort pas de chez toi, pas de paranoïa .

En gdm il existe toutefois gdmflexiserver que l’on peut lancer depuis une session graphique ouverte pour ouvrir une session X distante ou une seconde session X locale (avec une autre identité de préférence).

J’utilise juste xinit en effet, donc je ne savais pas. Il me faudrait exactement la commande à utiliser lorsque gdm tourne, afin que j’adapte le script.

Rien de neuf à ajouter :

ça se lance sans problème en session texte même sans changer d’identité, gdmflexiserver pour ceux qui le lancent depuis une session graphique (à condition de changer d’identité)

Quelle est la différence par rapport à faire

$ xinit programme – :1

??

Aucune je crois.

Déterrage :026
J’utilise un .xinitrc ( la flemme de charcuter du haskell pour tout inclure dans xmonad ).
Donc si en tty je lance:

Ca devrait me lancer en multi-session ??
Non pas que j’en ait besoin, c’est pa curiosité :unamused:

Sans doute. note que seule la première session disposera de l’accélération 3D (sur les Nvidia en tout cas)

Edit: tiens, ça n’est pas toujours vrai, bizarre…

:005 Bon j’ai voulu faire ma co****ie jusqu’au bout et “crash” :confusion-seeingstars:

:0 m’affiche le joli logo nVidia mais ça s’arrète la avec un écran noir :1 et suivants réagissent comme si il ne s’était rien passé. Le tty me retourne en boucle “no protocole specified” :017
Sans doute une option a passer au xorg.conf et/ou au .xinitrc, je vais fouiner :024

Il faut je pense laisser un délai entre chaque lancement…

Bhen non pas moyen :frowning:
Des l’instant ou je spécifie --:n ( même pour ouvrir la session sur :1 ou :2 ) X rend la main :hand:

Hum, j’ai une première session convenable mais la seconde est dans les choux. Lancée séparément ça roule…

J’ai pas lâché l’affaire :mrgreen:

un simple$startx --:0
me renvoi dans les cordes.
Je précise que j’utilise un système minimal: installation minimale + pilote nvidia + WM +logiciels.

J’ai crée un 2d utilisateur: impossible de lancer X avec user 2 tant que user 1 y est connecté

J’ai testé: user1 startx en tty 1: OK ; Suivit de user1 startx en tty 2 niet :018

Ce n’est pas un problème matériel puisqu’avec xephyr sous gnome deux ( j’ai même testé trois ) users pouvaient se connecter sans trop de soucis.

Conclusion(les miennes=celle d’un noob :wink: ), par défaut le système:

  1. Ne permet pas à l’utilisateur de spécifier de sortie X.
  2. Ne permet pas à l’utilisateur de double connection X ( mais ça ç’était évident )
  3. Ne permet pas de double connection X tout cours :open_mouth:

Je vais me pencher là dessus dans la semaine :geek: ( voire ouvrir un fil dans SP )

Bon dimanche à tous :006

Rha, j’me foutrais des claques
Sur qu’en tapant$startx -- :1 ça marche déjà mieux que $startx --:1 :075

Donc ce brave user2 (qui va s’avérer bien utile) peut se connecter à X en même temps que user1 mais il faut spécifier le display. ( ça doit s’arranger en bidouillant pour chaque user le .xinitrc :083 )

J’ai pu le ( les ) lancer en multi-sessions ( 3 chacun en fait ) a gros coup de " sleep 10 " :open_mouth: mais ça marche et ça ne lague pas trop ( CG solide + WM léger ).

User2 va pouvoir passer les soirées à découvrir html/css plutôt qu’à rtfm X*,x* :005

Petite curiositée : A chaque serveurX j’ai du ré-initialiser mon fond d’écran ( nitrogen ) :laughing:

Hop !!! :dance: