je cherche a savoir dans un script si X est lance (pour lancer un xterm -e blabblabla)
Tester la presence de la variable DISPLAY vous parait elle etre une bonne idee?
Et: if [ `env | grep DISPLAY` ] then blablabla fi une bonne maniere de le tester?
Merci Sinon, tester directement dans la liste des processus ??
une commande du style : if [ -n `ps aux | grep X | grep -v grep` ]
-- Aurélien Projet AP²C - http://www.ap2c.org Clef Publique : http://www.ap2c.org/aurelien.gpg
Stephane Chazelas
2004-12-15, 15:26(+00), Kevin Denis:
[bash-linux] bonjour,
je cherche a savoir dans un script si X est lance (pour lancer un xterm -e blabblabla)
Tester la presence de la variable DISPLAY vous parait elle etre une bonne idee? [...]
Oui, et tu peux rajouter le test de si tu peux te connecter au serveur X (et reporter une erreur si tu ne peux pas).
if [ -n "$DISPLAY" ]; then if ! xdpyinfo > /dev/null 2>&1; then printf >&2 '%s: can not connect to X servern' "${0##*/}" exit 1 fi do_X=true else do_Xúlse fi
-- Stephane
2004-12-15, 15:26(+00), Kevin Denis:
[bash-linux]
bonjour,
je cherche a savoir dans un script si X est lance (pour lancer un
xterm -e blabblabla)
Tester la presence de la variable DISPLAY vous parait elle etre une
bonne idee?
[...]
Oui, et tu peux rajouter le test de si tu peux te connecter au
serveur X (et reporter une erreur si tu ne peux pas).
if [ -n "$DISPLAY" ]; then
if ! xdpyinfo > /dev/null 2>&1; then
printf >&2 '%s: can not connect to X servern' "${0##*/}"
exit 1
fi
do_X=true
else
do_Xúlse
fi
je cherche a savoir dans un script si X est lance (pour lancer un xterm -e blabblabla)
Tester la presence de la variable DISPLAY vous parait elle etre une bonne idee? [...]
Oui, et tu peux rajouter le test de si tu peux te connecter au serveur X (et reporter une erreur si tu ne peux pas).
if [ -n "$DISPLAY" ]; then if ! xdpyinfo > /dev/null 2>&1; then printf >&2 '%s: can not connect to X servern' "${0##*/}" exit 1 fi do_X=true else do_Xúlse fi
-- Stephane
Stephane Chazelas
2004-12-15, 11:19(+01), Aurelien Croc: [...]
Sinon, tester directement dans la liste des processus ?? une commande du style : if [ -n `ps aux | grep X | grep -v grep` ]
???
D'abord, il peut y avoir plus d'un X dans le resultat de "ps aux" (par exemple, sur mon systeme, il y a un utilisateur XYZ).
Ensuite, c'est inaproprié. Le serveur X n'a aucune raison d'etre local. Et si on se connecte par telnet/ssh sur une machine distante, il peut tres bien y avoir un serveur X qui tourne (ne serait-ce que pour la baniere de login d'xdm).
(la syntaxe "ps aux" n'est pas POSIX, c'est une syntaxe BSD).
-- Stephane
2004-12-15, 11:19(+01), Aurelien Croc:
[...]
Sinon, tester directement dans la liste des processus ??
une commande du style :
if [ -n `ps aux | grep X | grep -v grep` ]
???
D'abord, il peut y avoir plus d'un X dans le resultat de "ps
aux" (par exemple, sur mon systeme, il y a un utilisateur XYZ).
Ensuite, c'est inaproprié. Le serveur X n'a aucune raison d'etre
local. Et si on se connecte par telnet/ssh sur une machine
distante, il peut tres bien y avoir un serveur X qui tourne
(ne serait-ce que pour la baniere de login d'xdm).
(la syntaxe "ps aux" n'est pas POSIX, c'est une syntaxe BSD).
Sinon, tester directement dans la liste des processus ?? une commande du style : if [ -n `ps aux | grep X | grep -v grep` ]
???
D'abord, il peut y avoir plus d'un X dans le resultat de "ps aux" (par exemple, sur mon systeme, il y a un utilisateur XYZ).
Ensuite, c'est inaproprié. Le serveur X n'a aucune raison d'etre local. Et si on se connecte par telnet/ssh sur une machine distante, il peut tres bien y avoir un serveur X qui tourne (ne serait-ce que pour la baniere de login d'xdm).
(la syntaxe "ps aux" n'est pas POSIX, c'est une syntaxe BSD).