On a tous besoin de lancer d'anciens programmes (si si, un jour ou l'autre...) sur nos PC modernes. Mais ces derniers n'apprécient pas toujours. Un des problèmes souvent rencontrés: un programme qui ne sait pas gérer les multiprocesseurs et fini par planter. Dans ce cas il existe une commande qui permet de le lancer sur un seul de vos multiprocesseurs, tout en lui cachant l'existence des autres: taskset.
La syntaxe est simple:
taskset -c [numéro du ou des cpu qui seront disponibles au programme] [nom du programme]
Comme exemple, je vais lancer le jeu de mines de Wine sur un seul processeur:
$ taskset -c 0 winemine
Gardez le programme ouvert et dans un autre terminal lancez le gestionnaire de tâche de Wine:
$ wine taskmrg
Dans l'onglet processus, clic droit sur le programme winmine.exe, choisir dans le menu "Définir l'affinité" et vous constatez que le programme est bien exécuté sur un seul processeur, celui que nous lui avons précisé, c'est à dire le processeur portant le numéro "0".
Autre test en modifiant légèrement notre dernière commande:
$ taskset -c 0-1 winemine
Gardez le programme ouvert et dans un autre terminal lancez le gestionnaire de tâche de Wine:
$ wine taskmrg
Dans l'onglet processus, clic droit sur le programme winmine.exe, choisir dans le menu "Définir l'affinité" et vous constatez que les deux processeurs visibles et exploitables par le programme sont: le 0 et le 1.
LGDN.