View previous topic :: View next topic |
Author |
Message |
Dorgendubal Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
Joined: 24 Apr 2003 Posts: 231 Location: Switzerland (Zürich)
|
Posted: Mon Jun 23, 2003 12:50 pm Post subject: [Signaux] Fermer une application depuis une console |
|
|
Je cherche en vain depuis un moment comment envoyer le signal TERM à tous les processus en utilisant bash.
ça me serait utile pour pouvoir fermer "normalement" tous les programmes à la fin de l'exécution de XSession. Sinon les progs sont killés et certains d'entre eux n'aime pas trop ça: ils rouspètent lorsqu'on les redémarre et d'autres n'enregistre pas les options changées.
Merci
Last edited by Dorgendubal on Sat Jul 19, 2003 11:14 am; edited 2 times in total |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
ghoti Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/15463172846237c094abba7.jpg)
Joined: 30 Dec 2002 Posts: 3636 Location: Belgium
|
Posted: Mon Jun 23, 2003 6:37 pm Post subject: |
|
|
Tu peux toujours utiliser les commandes kill ou killall avec le signal de ton choix (voir le man)
Le problème, c'est que les processus ne répondent pas toujours à un signal "amical" comme SIGTERM (15).
Il faut alors leur envoyer un signal plus impératif comme SIGKILL (9) qui tue véritablement le processus.
Mais dans ce cas en effet, il n'est pas garanti que le processus aura sauvegardé ses données ...
Le plus prudent est encore d'arrêter les processus par les commandes normalement prévues par le programme (menu file/exit, par ex.) et de n'utiliser le kill que dans les cas vraiment récalcitrants (un mozilla planté ...) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Dorgendubal Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
Joined: 24 Apr 2003 Posts: 231 Location: Switzerland (Zürich)
|
Posted: Mon Jun 23, 2003 9:23 pm Post subject: |
|
|
merci. Je savais pas qu'on pouvait spécifier le signal avec kill ou killall.
J'en ai besoin parce que lorsque je quitte fluxbox (lancé par xsession), le serveurX est réinitializé et toutes les applications sont killées. Donc si je peux leur envoyer un signal TERM avant, c'est mieux. Même si certaines ne réagissent pas, de toute manière, elles seront killées ensuite. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Dorgendubal Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
Joined: 24 Apr 2003 Posts: 231 Location: Switzerland (Zürich)
|
Posted: Tue Jun 24, 2003 5:10 am Post subject: |
|
|
Ben ça marche apparemment pas
Même les signaux TERM et QUIT ont les mêmes effets que si on tuait les applications. Je pensais qu'il y avait un signal qui avait le même effet que cliquer sur la croix (en haut à droite d'une appli).
Je me demande comment fait KDE pour quitter correctement tous les progs lorsque l'on se délogue. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Dorgendubal Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
Joined: 24 Apr 2003 Posts: 231 Location: Switzerland (Zürich)
|
Posted: Sat Jul 19, 2003 11:15 am Post subject: |
|
|
UP!
J'ai tjrs pas trouvé de solution. Comment faire quitter une application normalement lorsque l'on quitte WindowMaker, Fluxbox, ... comme le ferait KDE? |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
yuk159 Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/44288576244ba5392c2df1.jpg)
Joined: 18 Apr 2003 Posts: 1803 Location: noumea ,nouvelle-caledonie
|
Posted: Sat Jul 19, 2003 6:32 pm Post subject: |
|
|
Je ne sais pas si j'ai bien compris, mais est-ce que ca te conviendrai ? :
Code: | kill -s SIGQUIT le_process_a_quitter |
_________________ The box said: "Requires Windows 98/2000/XP/NT, or better."
So, I installed LINUX!
Instagram |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
nicodache Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
Joined: 25 Apr 2003 Posts: 83
|
Posted: Sat Jul 19, 2003 7:19 pm Post subject: |
|
|
pour faire plus simple, ya moyen de faire
Code: | kill -SIGQUIT process_a_terminer |
nan ? |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
yuk159 Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/44288576244ba5392c2df1.jpg)
Joined: 18 Apr 2003 Posts: 1803 Location: noumea ,nouvelle-caledonie
|
Posted: Sat Jul 19, 2003 7:23 pm Post subject: |
|
|
nicodache wrote: | pour faire plus simple, ya moyen de faire
Code: | kill -SIGQUIT process_a_terminer |
nan ? |
plus simple encore ?
mais je ne sais pas si c'est ce qu'il cherche _________________ The box said: "Requires Windows 98/2000/XP/NT, or better."
So, I installed LINUX!
Instagram |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
nicodache Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
Joined: 25 Apr 2003 Posts: 83
|
Posted: Sat Jul 19, 2003 7:51 pm Post subject: |
|
|
et ca fé quoi kill -3 ? ca tue tout ? ![Very Happy :D](images/smiles/icon_biggrin.gif) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
yuk159 Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/44288576244ba5392c2df1.jpg)
Joined: 18 Apr 2003 Posts: 1803 Location: noumea ,nouvelle-caledonie
|
Posted: Sat Jul 19, 2003 8:34 pm Post subject: |
|
|
non c'est la meme commande que plus haut
et voila la table :
Code: | $ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO
30) SIGPWR 31) SIGSYS
|
_________________ The box said: "Requires Windows 98/2000/XP/NT, or better."
So, I installed LINUX!
Instagram |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
nicodache Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
Joined: 25 Apr 2003 Posts: 83
|
Posted: Sat Jul 19, 2003 9:45 pm Post subject: |
|
|
haaaaa ! je pensais que le SIQGUIT c'était un signal "général", du genre /kill -signal_en_question process_en_question
(bah oué,je savais pas que le 3 c'était SIGQUIT ) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
yuk159 Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/44288576244ba5392c2df1.jpg)
Joined: 18 Apr 2003 Posts: 1803 Location: noumea ,nouvelle-caledonie
|
Posted: Sun Jul 20, 2003 1:11 pm Post subject: |
|
|
Pour ceux que ca interressent, il n'y a pas que SIGTERM ou SIGKILL comme signaux de terminaison.
je precise que les exemples que je donnes viennent du livre de Jean-Marie RIFFLET : la programmation sous UNIX (3eme EDITION).
Quote: | SIGHUP terminaison du processus leader de session
SIGQUIT frappe du caractere quit sur le clavier du terminal de controle
SIGABRT terminaison anormale provoquee
SIGKILL signal de terminaison
SIGTERM signal de terminaison
SIGCHLD terminaison d'un fils |
voila je pense que c'est a peut-pres complet (si quelqu'un veut rajouter quelque chose ou corriger une erreur ... )
maintenant comme ghoti je pense que le meilleur moyen de quitter un programme c'est encore les options de celui-ci ![Wink ;)](images/smiles/icon_wink.gif) _________________ The box said: "Requires Windows 98/2000/XP/NT, or better."
So, I installed LINUX!
Instagram |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
yuk159 Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/44288576244ba5392c2df1.jpg)
Joined: 18 Apr 2003 Posts: 1803 Location: noumea ,nouvelle-caledonie
|
Posted: Sun Jul 20, 2003 1:49 pm Post subject: |
|
|
heuuuuuuuu mefie toi quand meme Dorgendubal je viens de faire un :
killall -s QUIT X et le resultat c'est que j'ai carrement fige X.
donc je ne sais vraiment pas ci ce que tu cherche existe, enfin en une seule commande. _________________ The box said: "Requires Windows 98/2000/XP/NT, or better."
So, I installed LINUX!
Instagram |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Dorgendubal Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
Joined: 24 Apr 2003 Posts: 231 Location: Switzerland (Zürich)
|
Posted: Sun Jul 20, 2003 8:43 pm Post subject: |
|
|
merci. Désolé de répondre si tard.
Alors j'ai essayé différentes méthodes qui devraient donner le même résultat:
Code: |
killall -3 galeon
killall -s QUIT galeon
kill -3 <pid>
kill -s QUIT <pid>
kill -SIGQUIT <pid>
...
|
j'ai essayé avec plusieurs autres signaux "HALT", "TERM", ...
le résultat est le même que un kill normal. A savoir, lorsque je redémarre galeon (ou opera), le programme rouspète à propos d'une mauvaise fermeture et demande si je veux restorer ma précedente session. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Dorgendubal Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
Joined: 24 Apr 2003 Posts: 231 Location: Switzerland (Zürich)
|
Posted: Sun Jul 20, 2003 8:48 pm Post subject: |
|
|
Je viens de réessayer avec KDE. Celui-ci quitte toutes les applications normalement (donc les modifications sont enregistrées) et les restore lors d'un nouveau loggage.
Alors que Windowmaker, Fluxbox, ... ne se contentent que de les killer. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Sleeper l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/gallery/Marvel/movie_x-men_rogue_2.gif)
Joined: 12 Nov 2002 Posts: 667
|
Posted: Mon Jul 21, 2003 8:13 am Post subject: |
|
|
Code: | kill -9 <pid du process> |
Ca devrait aller un peu mieux mais tu ecrases une mouche avec un marteau .. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Dorgendubal Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
Joined: 24 Apr 2003 Posts: 231 Location: Switzerland (Zürich)
|
Posted: Mon Jul 21, 2003 8:57 am Post subject: |
|
|
Quote: | Code: |
kill -9 <pid du process>
|
|
Ben non. C'est pas ce que je veux.
Bon je vais tenter de réexpliquer le problème:
Certains programmes effectuent des operations lorsqu'on les quitte (OnClose): sauvegarder la config actuelle, les pages ouvertes, ... afin que lorsqu'on les redemarre, ils puissent restorer la config.
Mais si on les tue, la procedure OnClose ne sera point exécutée. Certains programmes rouspètent même si on les tuent. (Galeon par exemple).
Donc, j'aimerai connaître une manière de quitter un prog normalement (comme si on faisait "Fichier | Quitter" ou ALT+Q, ...). |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Sleeper l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/gallery/Marvel/movie_x-men_rogue_2.gif)
Joined: 12 Nov 2002 Posts: 667
|
Posted: Mon Jul 21, 2003 9:55 am Post subject: |
|
|
Ben cela depend VRAIMENT du programme, ou plutot du developpeur .. S'il a gere proprement ou non les SIGTERM et consort .. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Dorgendubal Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
Joined: 24 Apr 2003 Posts: 231 Location: Switzerland (Zürich)
|
Posted: Mon Jul 21, 2003 11:09 am Post subject: |
|
|
Quote: | Ben cela depend VRAIMENT du programme, ou plutot du developpeur .. S'il a gere proprement ou non les SIGTERM et consort .. |
Oui. Bien-sûr. Mais KDE parvient à quitter "normalement" les programmes lorsque l'utilisateur se de-logue. Et j'ai pensé que je pouvais faire de même en utilisant SIGTERM ou SIGQUIT. Mais apparemment pas. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
fribadeau Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
![](images/avatars/11201398844428f218e58c9.png)
Joined: 13 Jul 2003 Posts: 153 Location: Thonon (France)
|
Posted: Mon Jul 21, 2003 4:30 pm Post subject: |
|
|
Le kill <pid du process>, équivalent au kill -TERM envoie un message au processus lui demandant de se terminer normallement.
Si l'appli est bien écrite, elle va finir son travail en cours (sauvegarde des fichiers, ...) avant de se stopper. C'est pour cela que les scripts d'arrêt font en général d'abord un kill avant de faire un kill -9 (ou -KILL, ce qui revient à retirer l'échelle )
Dans le cas de KDE, c'est exactement ce qui se passe et les appli lancées se ferment normalement.
Maintenant, lances-tu les mêmes appli depuis fluxbox ? Il n'y a, à priori, aucune raison pour que cela se passe autrement.
Pour tester, tu lance l'appli TRUC sous KDE et tu fait kill <pid de truc> Tu vérifie qu'elle sort proprement.
Tu fais ensuite exactement la même chôse depuis fluxbox, le résultat doit être identique. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
sgermain n00b
![n00b n00b](/images/ranks/rank_rect_0.gif)
![](images/avatars/gallery/Simpsons/simpsons_krusty.gif)
Joined: 04 Jun 2003 Posts: 19
|
Posted: Tue Oct 21, 2003 1:29 pm Post subject: kill en douceur |
|
|
kde utilise dcop
ex:
dcop konqueror-24041 MainApplication-Interface quit
voila le truc mais je ne sais pas si il existe un interface de communication semblable sous flubox et compagnie |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
|