Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Signaux] Fermer une application depuis une console
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Dorgendubal
Apprentice
Apprentice


Joined: 24 Apr 2003
Posts: 231
Location: Switzerland (Zürich)

PostPosted: Mon Jun 23, 2003 12:50 pm    Post subject: [Signaux] Fermer une application depuis une console Reply with quote

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
View user's profile Send private message
ghoti
Advocate
Advocate


Joined: 30 Dec 2002
Posts: 3636
Location: Belgium

PostPosted: Mon Jun 23, 2003 6:37 pm    Post subject: Reply with quote

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
View user's profile Send private message
Dorgendubal
Apprentice
Apprentice


Joined: 24 Apr 2003
Posts: 231
Location: Switzerland (Zürich)

PostPosted: Mon Jun 23, 2003 9:23 pm    Post subject: Reply with quote

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
View user's profile Send private message
Dorgendubal
Apprentice
Apprentice


Joined: 24 Apr 2003
Posts: 231
Location: Switzerland (Zürich)

PostPosted: Tue Jun 24, 2003 5:10 am    Post subject: Reply with quote

Ben ça marche apparemment pas :cry:

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
View user's profile Send private message
Dorgendubal
Apprentice
Apprentice


Joined: 24 Apr 2003
Posts: 231
Location: Switzerland (Zürich)

PostPosted: Sat Jul 19, 2003 11:15 am    Post subject: Reply with quote

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
View user's profile Send private message
yuk159
Veteran
Veteran


Joined: 18 Apr 2003
Posts: 1803
Location: noumea ,nouvelle-caledonie

PostPosted: Sat Jul 19, 2003 6:32 pm    Post subject: Reply with quote

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
View user's profile Send private message
nicodache
Tux's lil' helper
Tux's lil' helper


Joined: 25 Apr 2003
Posts: 83

PostPosted: Sat Jul 19, 2003 7:19 pm    Post subject: Reply with quote

pour faire plus simple, ya moyen de faire
Code:
kill -SIGQUIT process_a_terminer

nan ?
Back to top
View user's profile Send private message
yuk159
Veteran
Veteran


Joined: 18 Apr 2003
Posts: 1803
Location: noumea ,nouvelle-caledonie

PostPosted: Sat Jul 19, 2003 7:23 pm    Post subject: Reply with quote

nicodache wrote:
pour faire plus simple, ya moyen de faire
Code:
kill -SIGQUIT process_a_terminer

nan ?

plus simple encore ?
Quote:
kill -3

;)
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
View user's profile Send private message
nicodache
Tux's lil' helper
Tux's lil' helper


Joined: 25 Apr 2003
Posts: 83

PostPosted: Sat Jul 19, 2003 7:51 pm    Post subject: Reply with quote

et ca fé quoi kill -3 ? ca tue tout ? :D
Back to top
View user's profile Send private message
yuk159
Veteran
Veteran


Joined: 18 Apr 2003
Posts: 1803
Location: noumea ,nouvelle-caledonie

PostPosted: Sat Jul 19, 2003 8:34 pm    Post subject: Reply with quote

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
View user's profile Send private message
nicodache
Tux's lil' helper
Tux's lil' helper


Joined: 25 Apr 2003
Posts: 83

PostPosted: Sat Jul 19, 2003 9:45 pm    Post subject: Reply with quote

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 :D)
Back to top
View user's profile Send private message
yuk159
Veteran
Veteran


Joined: 18 Apr 2003
Posts: 1803
Location: noumea ,nouvelle-caledonie

PostPosted: Sun Jul 20, 2003 1:11 pm    Post subject: Reply with quote

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 ... :D)

maintenant comme ghoti je pense que le meilleur moyen de quitter un programme c'est encore les options de celui-ci ;)
_________________
The box said: "Requires Windows 98/2000/XP/NT, or better."
So, I installed LINUX!
Instagram
Back to top
View user's profile Send private message
yuk159
Veteran
Veteran


Joined: 18 Apr 2003
Posts: 1803
Location: noumea ,nouvelle-caledonie

PostPosted: Sun Jul 20, 2003 1:49 pm    Post subject: Reply with quote

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
View user's profile Send private message
Dorgendubal
Apprentice
Apprentice


Joined: 24 Apr 2003
Posts: 231
Location: Switzerland (Zürich)

PostPosted: Sun Jul 20, 2003 8:43 pm    Post subject: Reply with quote

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
View user's profile Send private message
Dorgendubal
Apprentice
Apprentice


Joined: 24 Apr 2003
Posts: 231
Location: Switzerland (Zürich)

PostPosted: Sun Jul 20, 2003 8:48 pm    Post subject: Reply with quote

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
View user's profile Send private message
Sleeper
l33t
l33t


Joined: 12 Nov 2002
Posts: 667

PostPosted: Mon Jul 21, 2003 8:13 am    Post subject: Reply with quote

Code:
 kill -9 <pid du process>


Ca devrait aller un peu mieux mais tu ecrases une mouche avec un marteau ..
Back to top
View user's profile Send private message
Dorgendubal
Apprentice
Apprentice


Joined: 24 Apr 2003
Posts: 231
Location: Switzerland (Zürich)

PostPosted: Mon Jul 21, 2003 8:57 am    Post subject: Reply with quote

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
View user's profile Send private message
Sleeper
l33t
l33t


Joined: 12 Nov 2002
Posts: 667

PostPosted: Mon Jul 21, 2003 9:55 am    Post subject: Reply with quote

Ben cela depend VRAIMENT du programme, ou plutot du developpeur .. S'il a gere proprement ou non les SIGTERM et consort ..
Back to top
View user's profile Send private message
Dorgendubal
Apprentice
Apprentice


Joined: 24 Apr 2003
Posts: 231
Location: Switzerland (Zürich)

PostPosted: Mon Jul 21, 2003 11:09 am    Post subject: Reply with quote

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
View user's profile Send private message
fribadeau
Apprentice
Apprentice


Joined: 13 Jul 2003
Posts: 153
Location: Thonon (France)

PostPosted: Mon Jul 21, 2003 4:30 pm    Post subject: Reply with quote

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 :wink: )

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
View user's profile Send private message
sgermain
n00b
n00b


Joined: 04 Jun 2003
Posts: 19

PostPosted: Tue Oct 21, 2003 1:29 pm    Post subject: kill en douceur Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum