Linux chrt Befehl Tutorial für Anfänger (5 Beispiele)

Prozesse bilden den Kern eines laufenden Linux-Systems. Wenn ein Programm in einen Prozess umgewandelt wird (d.h. wenn es ausgeführt wird), werden viele Attribute gesetzt. Manchmal ist es sinnvoll, diese Attribute zur Laufzeit zu ändern. Es gibt ein Kommandozeilenwerkzeug chrt, mit dem Sie dies tun können.

In diesem Tutorial werden wir dieses Dienstprogramm mit einigen leicht verständlichen Beispielen diskutieren. Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele in diesem Artikel auf einem Ubuntu 18.04 LTS-Rechner getestet wurden.

Linux chrt Befehl

Wie bereits im Einführungsabschnitt oben erwähnt, können Sie mit dem Befehl chrt die Echtzeitattribute eines Prozesses manipulieren. Folgendes ist seine Syntax:

chrt [options] -p [prio] pid

Und so erklärt es die Man Page des Tools:

       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.

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine gute Vorstellung davon vermitteln sollen, wie der Befehl chrt funktioniert.

Q1. Wie verwendet man den Befehl chrt?

Angenommen, Sie sind daran interessiert, die Planungsrichtlinie oder die Priorität des Gedit-Prozesses zu manipulieren. Also ist das erste, was du tun musst, die Prozess-ID für diesen Prozess zu erhalten, etwas, was du mit dem Befehl pidof tun kannst.

pidof gedit

Auf meinem System zum Beispiel gab der obige Befehl die pid’6063′ als Ausgabe. Um nun die aktuelle Planungsrichtlinie und Priorität für den Gedit-Prozess abzurufen, verwenden Sie chrt wie folgt:

chrt -p 6063

Und hier ist die Ausgabe dieses Befehls auf meinem System:

pid 6063's current scheduling policy: SCHED_OTHER
pid 6063's current scheduling priority: 0

Q2. Wie kann man chrt dazu bringen, minimale/maximale gültige Prioritäten anzuzeigen?

Dies kann mit der Kommandozeilenoption -m erfolgen.

chrt -m

Auf unserem System hat der obige Befehl beispielsweise die folgende Ausgabe erzeugt:

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

Sie müssen sich bei der Festlegung von Planungsrichtlinien auf diese Werte für die Prioritätensetzung beziehen.

Q3. Wie kann man eine Planungsrichtlinie auf SCHED_BATCH setzen?

Dies kann mit der Kommandozeilenoption -b erfolgen.

Zum Beispiel:

chrt -b -p 0 6063

Wenn Sie nun die Planungsrichtlinie für gedit mit dem folgenden Befehl erneut überprüfen:

chrt -p 6063

Sie sollten eine Ausgabe ähnlich der folgenden erhalten, was bedeutet, dass die von Ihnen vorgenommene Änderung übernommen wurde:

pid 6063's current scheduling policy: SCHED_BATCH
pid 6063's current scheduling priority: 0

Q4. Wie kann man eine Planungsrichtlinie auf SCHED_FIFO setzen?

Dies kann mit der Kommandozeilenoption -f erfolgen.

chrt -f -p 20 6063

Wie bei den vorherigen Q&As können Sie die Änderungen mit dem Befehl chrt -p überprüfen. Bitte beachten Sie, dass Sie möglicherweise Root-Rechte für die Verwendung der Befehlszeilenoption -f benötigen.

Q5. Wie kann man eine Planungsrichtlinie auf SCHED_OTHER setzen?

Dies kann mit der Kommandozeilenoption -o erfolgen.

chrt -o -p 0 6063

Um zu überprüfen, verwenden Sie den Befehl chrt -p.

chrt -p 6063

Nachfolgend ist die Ausgabe in meinem Fall:

pid 6063's current scheduling policy: SCHED_OTHER
pid 6063's current scheduling priority: 0

Fazit

Einverstanden, der Befehl chrt ist nicht die Art von Werkzeug, die Sie jeden Tag benutzen können. Verdammt, du brauchst es vielleicht nicht einmal, bis du dich mit Systemverwaltung beschäftigst oder an einigen Arbeiten im Zusammenhang mit der Kernelplanung arbeitest. Es lohnt sich jedoch, zumindest zu wissen, dass es ein solches Werkzeug gibt. Weitere Informationen zu chrt findest du auf der Man Page von chrt.

Das könnte Dich auch interessieren …