Les processus forment le cœur d'un système Linux en cours d'exécution. Lorsqu'un programme se convertit en processus (c'est-à-dire lorsqu'il est exécuté), de nombreux attributs sont définis. Parfois, vous souhaiterez peut-être modifier ces attributs lors de l'exécution. Il existe un outil en ligne de commande chrt qui vous permet de faire cela.
Dans ce tutoriel, nous allons discuter de cet utilitaire avec quelques exemples faciles à comprendre. Mais avant cela, il convient de mentionner que tous les exemples de cet article ont été testés sur une machine Ubuntu 18.04 LTS.
Commande chrt Linux
Comme déjà mentionné dans la section d'introduction ci-dessus, la commande chrt vous permet de manipuler les attributs en temps réel d'un processus. Voici sa syntaxe :
chrt [options] -p [prio] pid
Et voici comment la page de manuel de l'outil l'explique :
chrt sets or retrieves the real-time scheduling attributes of an exist?
ing pid, or runs command with the given attributes. Both policy (one
of SCHED_OTHER, SCHED_FIFO, SCHED_RR, SCHED_BATCH, or SCHED_IDLE) and
priority can be set and retrieved.
The SCHED_BATCH policy is supported since Linux 2.6.16. The SCHED_IDLE
policy is supported since Linux 2.6.23.
The SCHED_RESET_ON_FORK flag for policies SCHED_RR and SCHED_FIFO is
supported since Linux 2.6.31.
Voici quelques exemples de style Q&A qui devraient vous donner une bonne idée du fonctionnement de la commande chrt.
Q1. Comment utiliser la commande chrt ?
Supposons que vous souhaitiez manipuler la politique de planification ou la priorité du processus gedit. La première chose à faire est donc d'obtenir l'ID de processus pour ce processus, ce que vous pouvez faire à l'aide de la commande pidof.
pidof gedit
Sur mon système, par exemple, la commande ci-dessus a donné le pid '6063' en sortie. Maintenant, pour récupérer la politique de planification actuelle et la priorité du processus gedit, utilisez chrt de la manière suivante :
chrt -p 6063
Et voici la sortie que cette commande a produite sur mon système :
pid 6063's current scheduling policy: SCHED_OTHER
pid 6063's current scheduling priority: 0
Q2. Comment faire en sorte que chrt affiche les priorités minimales/maximales valides ?
Cela peut être fait en utilisant l'option de ligne de commande -m.
chrt -m
Par exemple, sur notre système, la commande ci-dessus a produit le résultat suivant :
SCHED_OTHER min/max priority : 0/0
SCHED_FIFO min/max priority : 1/99
SCHED_RR min/max priority : 1/99
SCHED_BATCH min/max priority : 0/0
SCHED_IDLE min/max priority : 0/0
Vous devrez vous référer à ces valeurs pour définir les priorités lors de la définition des politiques de planification.
Q3. Comment définir une politique de planification sur SCHED_BATCH ?
Cela peut être fait en utilisant l'option de ligne de commande -b.
Par exemple :
chrt -b -p 0 6063
Maintenant, si vous vérifiez à nouveau la politique de planification pour gedit à l'aide de la commande suivante :
chrt -p 6063
Vous devriez obtenir un résultat semblable à celui-ci, indiquant que la modification que vous avez effectuée a été appliquée :
pid 6063's current scheduling policy: SCHED_BATCH
pid 6063's current scheduling priority: 0
Q4. Comment définir une politique de planification sur SCHED_FIFO ?
Cela peut être fait en utilisant l'option de ligne de commande -f.
chrt -f -p 20 6063
Comme fait dans le Q&A précédent, vous pouvez vérifier les changements en utilisant le chrt -p commande. Veuillez noter que vous pouvez avoir besoin des privilèges root pour utiliser l'option de ligne de commande -f.
Q5. Comment définir une politique de planification sur SCHED_OTHER ?
Cela peut être fait en utilisant l'option de ligne de commande -o.
chrt -o -p 0 6063
Pour vérifier, utilisez la commande chrt -p.
chrt -p 6063
Voici la sortie dans mon cas :
pid 6063's current scheduling policy: SCHED_OTHER
pid 6063's current scheduling priority: 0
Conclusion
D'accord, la commande chrt n'est pas le genre d'outil que vous pouvez utiliser tous les jours. Heck, vous n'en aurez peut-être même pas besoin jusqu'à ce que vous soyez dans la gestion du système ou que vous travailliez sur des travaux liés à la planification du noyau. Cependant, il vaut la peine de savoir au moins qu'un tel outil existe. Pour plus d'informations sur chrt, rendez-vous sur sa page de manuel.