Salut Fredish
Ben c'est pas compliquer :)
Je vais te donner la manipulation sous kde:
Donc tu as démarré en 3, tu t'es loggé, tu as tapé startx.
tu ouvre une console, et tu tape:
#pstree | grep -A1 startx
|-login---bash---startx---xinit-+-X
| `-startkde---kwrapper
La tu a bien la sequence ennoncée au dessus
login -> bash -> startx
Quand tu quitte un programme, enfait tu lui envoies le signal 15 (kill -15)
Donc il suffit de trouver à quel programme tu dois envoyer ce signal.
premiere idée startx:
ps -ef | grep startx puis kill -15 le pid que tu as trouvé.
ça fonctionne, mais tu trouve sur la console qui a lancé startx une ligne du type: unexepted signal 15, donc c'est pas la bonne solution.
Seconde idée: tuer X de la même façon.
idem ça fonctionne et tu retrouves la ligne "xinit: connection to X server lost."
Donc c'est pas encore au top (en fait, c'est ce qui se passe quand tu tapes <crtl><alt><bkspace>)
<note>
au passage on peut se rendre compte de la difference entre les signaux 9 (arret immediat) et 15 (demande d'arret)
un kill -9 ne donnera pas d'erreur supplementaire de la part de startx, mais un bon paquet de ficher core.* seront créés
</note>
Donc reste éventuellement startkde ?
tu refais la manip, kill -15, et la tu quittes kde, X s'arréte normalement, startx ne renvoie aucune erreur :o)
C'est exactement ce qui se passe quand tu appuis sur le boutton,
tu envoie le signal 15 à kde !
Bon maintenant, il reste à trouver comment faire ça en une commande....
Récuperation du pid... ps -ef | grep startkde, c'est pas top.
Alors une option courant de ps et -C cmd
#ps -C starkde
c'est pas mal, mais la sortie est pas évidente.
man ps,
# ps --no-headers -C startkde
C'est déjà mieux, il n'y a plus d'entête :)
il va falloir récupérer le champ du pid (1)... le probleme c'est que la sortie n'est pas bien formatée:
# ps --no-headers -C startkde| cut -f1
tu récupéres tout la ligne donc faut lui spécifier un delimiteur de champs (au hasard 'espace').
# ps --no-headers -C startkde| cut -f1 -d' '
bien mais pas top, il considére qu'au premier espace trouvé c'est un champ.
# ps --no-headers -C startkde| cut -f2 -d' '
Nickel! :)
ben reste plus qua renvoyer ça à la commande kill:
kill -15 `ps --no-headers -C startkde| cut -f2 -d' '`
(`cmd` indique le resultat de la commande ;) )
et ça fonctionne :)
Bon c'est pas une commande toute bête (je n'ai jamais trouvé une commande toute bête pour quitter kde, en general, je fait <ctrl><alt><suppr>, puis je clique sur "quitter") mais rien ne t'empeche d'en faire un alias :)
voili voilou :)
C'est super détaillé, ce n'était peut-etre pas bien util mais j'aurais pas aimé recevoir la réponse "kill -15 `ps --no-headers -C startkde| cut -f2 -d' '`" sans autre commentaires, donc j'ai préférer mettre grooso-modo comment j'ai procédé ;)
@++
"Si c'est stupide et que ça marche,
alors ce n'est pas stupide"