[Script] Besoin d'aide pour terminer un script (Résolu)
Publié : ven. 04 janv. 2013, 22:13
Salutations.
J'étais en train de faire le tour de mes scripts X, et je désire les peaufiner un peu, mais après plusieurs essais, je ne parviens pas au résultat attendu.
En fait, le principe est simple : j'apprécie l'idée d'ouvrir ce qu'on veut dans un serveur graphique, et donc parfois je préfère ouvrir un programme seul dans un serveur X, plutôt que de devoir lancer le bureau et tout ce qui va avec. Donc mes scripts sont très petits et ne font rien d'extraordinaire, mais c'est toujours bon à prendre.
Pour l'instant, j'ai fait ceci est ça fonctionne parfaitement :
Donc le programme utilise le bon Bourne Again Shell, puis récupère le nombre qui correspond à la console active, ouvre un serveur X à la place de la console actuelle, puis lance mon_programme. Une fois mon_programme fermé, X se ferme, la console est réinitialisé (sans cela j'ai eu quelques surprises), puis bon après le Archey3 ce n'est que de la poudre aux yeux.
Le problème est quand il y a plusieurs processus d'ouvert, là il m'est impossible de terminer correctement le script, je dois quitter Xorg à la barbare (Ctrl+Alt+Backspace) :
Dans ce cas là, j'ouvre OpenBox (car dans mon cas, si j'essaie d'ouvrir Firefox sans, la fenêtre n'est pas dans une dimension qui me plait, car l'application n'est pas fenêtrée en réalité), XScreenSaver parce que je le vaux bien, et puis mon_programme se lance.
Mais là, dès qu'on ferme mon_programme, le serveur graphique continue de tourner.
Le problème, c'est que je ne peux pas utiliser killall, car c'est trop simple et ça risque de terminer plusieurs PID qui se cachent derrière un seul nom de processus, alors que je cherche qu'à en fermer un.
Je ne sais pas qu'est-ce que je suis censé écrire, pour que dès que je ferme mon_programme, le serveur X se ferme et que le script se termine. Un test ? Ou plus compliquer, arriver à récupérer les bons PID ? Ou peut-être que c'est juste ma structure qui ne va pas ?
Merci d'avance.
J'étais en train de faire le tour de mes scripts X, et je désire les peaufiner un peu, mais après plusieurs essais, je ne parviens pas au résultat attendu.
En fait, le principe est simple : j'apprécie l'idée d'ouvrir ce qu'on veut dans un serveur graphique, et donc parfois je préfère ouvrir un programme seul dans un serveur X, plutôt que de devoir lancer le bureau et tout ce qui va avec. Donc mes scripts sont très petits et ne font rien d'extraordinaire, mais c'est toujours bon à prendre.
Pour l'instant, j'ai fait ceci est ça fonctionne parfaitement :
Code : Tout sélectionner
#!/bin/bash
tty=$(tty | cut -c 9-10)
Xorg :$tty vt$tty -ac -terminate &
DISPLAY=:$tty mon_programme
reset
archey3
Le problème est quand il y a plusieurs processus d'ouvert, là il m'est impossible de terminer correctement le script, je dois quitter Xorg à la barbare (Ctrl+Alt+Backspace) :
Code : Tout sélectionner
#!/bin/bash
tty=$(tty | cut -c 9-10)
Xorg :$tty vt$tty -ac -terminate &
DISPLAY=:$tty openbox &
DISPLAY=:$tty xscreensaver &
DISPLAY=:$tty mon_programme
reset
archey3
Mais là, dès qu'on ferme mon_programme, le serveur graphique continue de tourner.
Le problème, c'est que je ne peux pas utiliser killall, car c'est trop simple et ça risque de terminer plusieurs PID qui se cachent derrière un seul nom de processus, alors que je cherche qu'à en fermer un.
Je ne sais pas qu'est-ce que je suis censé écrire, pour que dès que je ferme mon_programme, le serveur X se ferme et que le script se termine. Un test ? Ou plus compliquer, arriver à récupérer les bons PID ? Ou peut-être que c'est juste ma structure qui ne va pas ?
Merci d'avance.