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.
