Profitez des offres Memoirevive.ch!
kill, killall et App_Pauser

Vous le savez, MacOS X est bâti entièrement sur une couche Unix. En fait, un micronoyau appelé Mach.

La plupart du temps, ceci n’a absolument aucune espèce d’importance. Ou plutôt, tout le monde en profite sans vraiment s’en rendre compte.

Et pourtant, si votre Mac est capable de faire du multitâche, c’est-à-dire faire tourner plusieurs applications en même temps, s’il vous permet de forcer une application à quitter, s’il est capable de gérer plusieurs utilisateurs sur la même machine, s’il est capable de gérer les autorisations sur certains fichiers, s’il est capable de faire tourner assez facilement des applications venues de l’open-source comme OpenOffice ou Gimp, c’est grâce à cette couche Unix.

Le Terminal, qui fait tant horreur à beaucoup d’utilisateurs Mac (le maître de ces lieux y compris), c’est le portail d’accès à la couche Unix.

Mais bon, le but de cet article n’est pas de parler de la couche Unix de votre OS, mais de vous présenter un logiciel qui fonctionne grâce à cette fameuse couche.

Comme je le disais plus haut, votre Mac est capable de faire du multitâche. C’est-à-dire qu’il est capable de faire tourner plusieurs applications en même temps. En effet, sur n’importe quel Unix, chaque application correspond à un processus et chaque processus possède son propre numéro d’identification le PID (Process ID).

Si vous lancez le Terminal et que vous y entrez la commande ps -aux, vous obtiendrez une longue liste de processus qui tournent en ce moment sur votre machine. Comme vous pouvez le voir, la liste est longue.

Dans cette liste, à chaque processus est associé un PID, l’utilisateur qui a lancé ce processus, depuis combien de temps il tourne, etc.

Lorsque vous forcez une application à quitter, vous invoquez, sans le savoir la commande kill, qui porte assez bien son nom.

Cette commande s’utilise normalement de la manière suivante:

kill 12345

ou 12345 est le PID du processus, que vous obtenez grâce à la commande ps.

La petite soeur de la commande kill est la commande killall qui s’utilise par exemple ainsi:

killall Safari

pour forcer Safari à quitter.

Mais il se trouve que ces commandes kill et killall sont capables de faire bien d’autres choses.

En particulier si vous utilisez une de ces commandes avec l’option -SIGSTOP vous pouvez interrompre l’exécution du processus, comme ça:

killall -SIGSTOP Safari

ou

kill -SIGSTOP 12345

Il y a une grande différence entre “forcer à quitter” et “interrompre”. Forcer à quitter, va comme son nom l’indique, terminer définitivement le processus, tandis qu’interrompre un processus, va simplement le mettre en pause tout en vous permettant de le continuer plus tard.

Pour continuer un processus interrompu, utilisez simplement l’option -SIGCONT:

killall -SIGCONT Safari

ou

kill -SIGCONT 12345

Certains d’entre vous auront déjà réalisé l’intérêt d’interrompre un processus. Imaginez la situation suivante :

Vous venez de terminer un chef-d’oeuvre sur iMovie que vous avez transféré dans iDVD pour en faire un magnifique DVD. Vous lancez donc l’encodage de votre film. Ce genre de processus va occuper quasiment la totalité des ressources disponibles de votre processeur. En d’autres termes, vous aurez presque 100% d’utilisation CPU.

Manque de bol, c’est à ce moment là que vous réalisez que vous devez travailler une grosse photo dans Photoshop. Malgré toute la puissance multitâche de votre machine, Photoshop sera extrêmement lent, puisque l’encodage de votre film continuera en arrière-plan.

Grâce à l’interruption de processus, vous pourrez interrompre l’encodage, travailler votre image dans Photoshop, puis reprendre l’encodage lorsque vous en aurez fini avec Photoshop.

Génial, non ?

Évidemment, tout ça serait beaucoup plus simple si vous ne deviez pas mettre les mains dans le Terminal, n’est-ce pas ?

Et bien un développeur a pensé à vous et à créé une petite application qui s’appelle App_Pauser :

Ce logiciel n’est rien d’autre qu’une interface autour des commandes ps et kill.

A son lancement, vous aurez une (très) brève indexation des processus en cours (grâce à la commande ps):

Puis vous aurez la fenêtre principale de l’application:

A gauche, la liste des processus.

Comme avec la commande ps -aux, vous avez droit au nom du processus, son PID, le pourcentage de CPU qu’il utilise et l’utilisateur qui a lancé le processus. Mais vous avez également son statut. Pour l’instant, normalement, tous les processus sont “running”, c’est-à-dire qu’ils tournent.

A droite de la fenêtre, vous avez trois boutons: Pause, Continue, Kill.

A ce stade, leur fonction doit vous être évidente.

Pause vous permet d’interrompre un processus, tandis que Continue vous permet de le reprendre. Enfin, Kill vous permet de forcer un processus à quitter.

Lorsque vous mettez un processus en pause, son statut va changer de “running” à “paused” (interrompu).

Selon si vous sélectionnez un processus interrompu ou non, les boutons Pause et Continue seront grisés ou non.

Tout en bas de la fenêtre vous pouvez décider du taux de rafraîchissement de la liste ou la forcer à se remettre à jour en cliquant sur Refresh.

Et c’est tout. Pas de préférences, pas de menus, rien, nada. Juste une liste et quelques boutons.

Simple mais efficace.

Bien sûr, tout n’est pas (encore) parfait. Ce qui me gêne le plus c’est que si vous cachez ou minimisez la fenêtre, elle réapparaîtra au prochain rafraîchissement de la liste. De même, si le taux de rafraîchissement est trop rapide, il est très difficile de sélectionner un processus.

Mais tablons sur le fait que ce sont des erreurs de jeunesse et qu’ils seront bientôt réglés.

Comme beaucoup des logiciels que je présente et pour faire plaisir à Caplan, App_Pauser est totalement gratuit.

30 commentaires
1)
drazam
, le 30.10.2007 à 00:22

Ok, on est sur base Unix, mais sûr que ça plante pô, façon task manager de chez Ouiiindoze d’en face?

2)
XXé
, le 30.10.2007 à 00:26

Ah que voilà un petit utilitaire qui, s’il ne va pas révolutionner le monde informatique, va simplifier des choses pour ceux qui détestent mettre les mains dans le cambouis.

Tiens, tant qu’on y est : pourquoi 2 boutons (Pause et Continue) ? Un seul dont l’état s’adapte au process sélectionné et hop, encore plus simple : Pause si le process tourne et Continue dans l’autre cas.

Didier

3)
zit
, le 30.10.2007 à 00:38

C’est vrai que ça ne mange pas de pain, d’avoir ce petit soft dans un coin du dock. Merci Fabien.

z (drazam, méfie–toi, tout ce soleil depuis le temps… je répêêêête: le mélanome guette…)

4)
Smop
, le 30.10.2007 à 04:58

Dans ce genre de produits, on peut également signaler Process Wizard (freeware) de La Chose Interactive, permettant de changer la priorité d’un processus. Il y a aussi App Stop de Prosit Software, qui ressemble à App_Pauser en plus sophistiqué. Mais surtout, mon préféré, certes plus technique mais de loin le plus abouti, est Peek-a-Boo de Clarkwood Software.

5)
pilote.ka
, le 30.10.2007 à 06:01

Quel intérêt?

6)
pilote.ka
, le 30.10.2007 à 06:01

Je me le demande… Puisqu’on peut s’en passer pour faire toutes ces tâches.

7)
Caplan
, le 30.10.2007 à 07:28

Comme beaucoup des logiciels que je présente et pour faire plaisir à Caplan, App_Pauser est totalement gratuit.

Ah, te voilà revenu dans le droit chemin! Merci! ;-)

Milsabor!

8)
Puzzo
, le 30.10.2007 à 08:28

Grâce à l’interruption de processus, vous pourrez interrompre l’encodage, travailler votre image dans Photoshop, puis reprendre l’encodage lorsque vous en aurez fini avec Photoshop.

Et quand on reprend l’encodage du film, ça ne pose aucun problème? Je suis quand même surprise parce que j’ai tellement le réflexe de me dire: si ça encode, ne touche plus à rien et laisse tourner.

9)
Fabien Conus
, le 30.10.2007 à 08:32

Et quand on reprend l’encodage du film, ça ne pose aucun problème? Je suis quand même surprise parce que j’ai tellement le réflexe de me dire: si ça encode, ne touche plus à rien et laisse tourner.

Aucun problème. C’est comme si tu mettais l’ordi en veille et que tu le réveillais plus tard, le processus reprendra son petit bonhomme de chemin comme si de rien n’était.

10)
bens
, le 30.10.2007 à 09:58

Bizarre, ça ne marche pas chez moi. Le message d’erreur est “Can’t make “31.6” into type number. (-1700)” (le 31.6 est change chaque fois que je refais un essai). Je pense que c’est l’indexation qui bloque. QQ’un a une idée?

11)
superpantoufle
, le 30.10.2007 à 10:03

Merci pour ces découvertes exotiques! Je pratique régulièrement l’assassinat de processus récalcitrant à coup de Moniteur d’activité. Mais du coup, je me dis qu’Apple aurait juste pu rajouter un bouton “Pause” au moniteur, pour avoir un truc plus complet!

12)
Inconnu
, le 30.10.2007 à 11:03

Le moniteur d’activité permet d’envoyer un signal à un process mais ne propose pas le signal SIGSTOP dans sa liste, on se demande pourquoi.

13)
Le Corbeau
, le 30.10.2007 à 11:51

Aucun problème. C’est comme si tu mettais l’ordi en veille

Perso, j’ai pu souvent constater que les réveils étaient du type lendemains de fêtes (disparition de disques fireware, plantages d’appli et gravures en echec…) Depuis, mon mac n’est plus autorisé à se mettre en veille tout seul

14)
illianor
, le 30.10.2007 à 12:12

Personnellement j’utilise speed freak Au lieu de stopper un process, il va diminuer ceux qui sont en arière plan et augmenter celui qui est en arrière plan, avec une possibilité de le fixer sur une application en particulier. Comme ça je profite du multitache sans perdre trop (ou pas du tout) en performances.

15)
Fabien Conus
, le 30.10.2007 à 12:52

Perso, j’ai pu souvent constater que les réveils étaient du type lendemains de fêtes (disparition de disques fireware, plantages d’appli et gravures en echec…) Depuis, mon mac n’est plus autorisé à se mettre en veille tout seul

Ben, ce que tu présentes comme exemple est assez évident ! Mettre en veille pendant une gravure ??? C’et suicidaire ! La probabilité que le laser puisse reprendre le processus là où il s’est arrêté, et avec le bonne rotation du CD est quasiment impossible.

Pareil pour le Firwire, il faut un certain temps au système pour reconnaître et retrouver le disque.

Maintenant une application qui plante lorsqu’on la met en veille c’est une mauvaise application.

Personnellement j’utilise speed freak Au lieu de stopper un process, il va diminuer ceux qui sont en arière plan et augmenter celui qui est en arrière plan

Ca c’est la commande “renice”. J’en parlerai peut-être une autre fois. Mais elle ne remplira pas les même fonctions que “kill”.

16)
François Cuneo
, le 30.10.2007 à 13:28

Le Terminal, qui fait tant horreur à beaucoup d’utilisateurs Mac (le maître de ces lieux y compris), c’est le portail d’accès à la couche Unix.

On parle de moi là? Horreur est un peu léger. Je cherche pire dans Antidote, attendez…

affolement, alarme, angoisse, appréhension, crainte, effarement, effarouchement, effroi, épouvante, frayeur, grand-peur, hantise, inquiétude, panique, peur, phobie, psychose, terreur, transes.

Ça suffit?

J’en ai d’autres…

[Figuré] vertige.

[Soutenu] affres, apeurement.

[Familier] cauchemar, chiasse, frousse, pétoche, trac, trouille.

[Québec] [Familier] chienne, quételles.

[France] [Régional] ou [Vieilli] venette.

Dégoût — abomination, allergie, aversion, dégoût, écoeurement, haine, haut-le-coeur, indigestion, nausée, phobie, répugnance, répulsion, révulsion.

[Soutenu] détestation, exécration.

[Familier] dégoûtation.

Abjection — abjection, abomination, atrocité, bassesse, boue, corruption, crapulerie, crime, débauche, déshonneur, fange, grossièreté, honte, ignominie, impureté, indignité, infamie, laideur, misère, monstruosité, noirceur, obscénité, odieux, ordure, saleté, sordide, souillure, vice.

[Soutenu] sordidité, stupre, turpitude, vilenie.

[Familier] dégoûtation, dégueulasserie, pouillerie.

[Québec] [Familier] chiennerie, écoeuranterie.

[Vieux] vileté.

Bon. Ça va comme ça?

Évidemment, tout ça serait beaucoup plus simple si vous ne deviez pas mettre les mains dans le Terminal, n’est-ce pas ?

Oui. Bien que j’assure comme une bête…

Comme beaucoup des logiciels que je présente et pour faire plaisir à Caplan, App_Pauser est totalement gratuit.

Alors on tient compte de Caplan, qui n’est même PLUS sur Cuk, et moi qui n’aime pas le gratuit, on s’en contrebalance?

Belle mentalité.

Cela dit, très bien ce petit logiciel!

17)
alec6
, le 30.10.2007 à 14:31

Ben… tout comme Bens, ça marche pô chez moi, à la nuance numérique près…

18)
Le Corbeau
, le 30.10.2007 à 14:58

Le problème, Fabien, c’est lorsque le mac se met en veille tout seul comme un grand et visiblement, il se fout de savoir si on grave ou pas (et ne me demande pas pourquoi).

Quand aux applis mal foutues j’en ai au moins trois comme itune ou photoshop Elément qui figent parfois etle système qui indique que les disques ont été déconnectés inopinément et m’oblige à les débrancher pour les faire remonter. Bref, que de l’appli d’amateur :-))

19)
Fabien Conus
, le 30.10.2007 à 16:02

Le Corbeau, tu utilises Tiger ?

C’est bizarre, mais normalement, le système est suffisamment bien foutu pour ne pas se mettre en veille lorsqu’un processus est en cours. En tout cas, chez moi c’est le cas.

Maintenant, je peux comprendre qu’iTune ou Photoshop Elements perdent les pédales si les fichiers ouverts se trouvent sur un disque qui n’existe plus.

20)
JPD
, le 30.10.2007 à 17:44

Si l’intérêt est évident pour piloter l’exécution des applis en cours via une interface “user friendly” ce petit outil manque totalement de fiabilité : il plante comme un grand dès son lancement. Aucune fenêtre ne s’ouvre sauf un message d’erreur du genre “Can’t make “1.8” into type number. (-1700)” qui varie apparemment périodiquement !!! À mettre à la poubelle sans autre forme de procès.

Un logiciel ne s’use pas si l’on s’en sert, mais il plante quelquefois

21)
tavril
, le 30.10.2007 à 22:55

loin de moi l’idée de jouer au vieux de la veille, mais parfois la CLI est tellement efficace que je me demande pourquoi on veut systématiquement ajouter une surcouche graphique à tel ou tel outil. quand on en est au point de jouer avec les signaux et les priorités sur les processus, c’est qu’on doit être prêt à investir un minimum de temps sur l’apprentissage de ces concepts… et une fois que l’on comprends ces concepts, une fenêtre de terminal avec votre shell favori est quand même bien plus efficace que tel ou tel outil comme app_pauser, non ?

22)
henrif
, le 30.10.2007 à 23:01

On parle unix, processus, signal et on n’évoque pas les processus zombie !?

Prochaine leçon :

sudo rm -r /*.* (slash etoile point etoile que j’ai écris)

[Edit] je voulais mettre des étoiles mais c’te @&#/ de système de commentaires a encore filtré les caractères espéciaux. Comment peut-on être rétif à la ligne de commande dans le terminal et pourtant réussir à écrire des commentaires ici tous les jours ?

[Editus moderatus] il suffit d’écrire les caractéres spéciaux entre deux symboles @ pour qu’ils ne soient pas interprétés par Textile. Merci de préciser que la commande indiquée efface tout le disque dur… A ne pas utiliser donc!

23)
Fabien Conus
, le 31.10.2007 à 08:50

JPD: apparemment, quelques personnes ont un problème au lancement de cette application. Ce n’est pas mon cas, et ce n’est pas le cas de la majorité des gens. Allez savoir pourquoi…

tavril: Je trouve justement que dans ce cas, on gagne du temps. Le shell impose que l’on connaisse le nom exact du processus en question, ou que l’on retrouve son PID avec ps. Bref, en tout les cas, plusieurs étapes d’imposent.

henrif: allez, soyons fous: sudo rm -rf /*

24)
Le Corbeau
, le 31.10.2007 à 10:11

Oui, Fabien, j’utilise le tigre, mais mes problèmes étaient apparus sous panther Donc depuis, je n’ai jamais retenté l’aventure de la suspension d’activité avec des applis en fonctionnement.

25)
vibert
, le 31.10.2007 à 13:35

Yaiii ! il ne se lance pas chez moi : ni sur le G5, ni sur le MacIntel !

“Can’t make   quelque chose  type number. (-1700)”

Frustrant !

Une idée ? Help ! ! !

26)
406
, le 01.11.2007 à 00:02

peut-être que X11 n’a pas été installé…..mais je suppute.

27)
Fabien Conus
, le 01.11.2007 à 08:31

Non, X11 n’est pas utilisé par App_Pauser. Allez avoir pourquoi parfois ça marche et parfois pas….

En tout cas, il y a des commentaires sur MacUpdate qui relate les mêmes problème et le développeur avoue ne pas savoir d’où ils viennent.

28)
406
, le 01.11.2007 à 13:10

vu sur le site de JF, je cite régis : C’est un pb de localisation : il faut passer le format des nombres en US dans les préférences système.

29)
bens
, le 02.11.2007 à 09:40

Merci 406. Ça marche en effet. Puis-je savoir ce qui change dans le fonctionnement général de l’ordi lorsque le format des chiffres est ainsi mis en US dans les préf syst?

30)
pat3
, le 02.11.2007 à 12:28

Pareil pour moi, essayé et “Can’t make quelque chose type number. (-1700)”. Poubelle direct.

Merci 406 pour l’indication, mais j’attendrais une localisation correcte plutôt que de galérer avec les chiffres dans toutes les applications :-)

Merci à Smop (4), essayé toutes les applis que tu proposes, et pour l’instant, adopté Process Wizard.