Ändern Sie die Feinheit (Priorität) eines laufenden Prozesses

80

Ist es möglich, eine neue niceStufe eines laufenden Prozesses mit einer bekannten ID festzulegen?

Benötigt dieser Vorgang Root-Zugriff oder ist er lediglich der Eigentümer des Prozesses?

Adam Matan
quelle

Antworten:

76

Terminal

Wenn Sie an einem Terminal sind, können Sie verwenden renice

renice [-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

Ein einfaches Beispiel wäre

renice 8 31043
31043: old priority 5, new priority 8

Sie können auch harte Flags übergeben, aber es folgt dieser Reihenfolge (Sie müssen zuerst die Priorität und dann die PID übergeben - wenn Sie die Reihenfolge ändern, wird die Nutzungsnachricht angezeigt)

renice -n 5 -p 31043
31043: old priority 8, new priority 5

Prioritäten arbeiten auf einer Skala von -20bis 19- Je niedriger die Zahl, desto höher ist die Priorität des Systems.

Wenn Sie den Prozess besitzen, benötigen Sie kein Root-Konto. Wenn der Prozess jedoch einem anderen Benutzer gehört oder wenn Sie beabsichtigen, die Gruppe / den Benutzer des Prozess-Root-Kontos (über sudo) zu ändern, ist dies erforderlich.

Marco Ceppi
quelle
11
Sie können die Freundlichkeit als Benutzer nicht verringern. :)
htorque
5
Wie @htorque sagt, kann ein Nichtbenutzer die Feinheit rootnur erhöhen - sie können die Feinheit nicht verringern, nicht einmal auf ein vorheriges Feinheitsniveau, das der Prozess hatte, und nicht einmal auf ein vorheriges Feinheitsniveau, von dem sie selbst reniceden Prozess herabgesetzt hatten. Ich empfehle, diese Antwort zu bearbeiten, um diese Informationen einzubeziehen.
Eliah Kagan
2
Gibt es einen Nachteil, wenn eine Prozesspriorität auf -20 gesetzt wird?
James Watkins
2
@ JamesWatkins Sie könnten Ihren Computer zum
Stillstand bringen
33

GUI

  • Alt+ F2und tippesudo gnome-system-monitor

Vor 11.04: System> Administration> Systemmonitor. Wählen Sie Prozesse.
In 11.04: Alt+ Aund suche nach system monitor.

Die IDs sind im Bild hier gezeigt:

Bildbeschreibung hier eingeben

Und nice benötigt kein sudo, um die Feinheit zu erhöhen, wenn Sie die Aufgabe besitzen. Dies ist der Fall, wenn Sie die Schönheit verringern müssen.

Rinzwind
quelle
10

Starten Sie einen Befehl mit nettem Prio

nice -n 19 your_command

Renice-Prozess

renice 19 $(pidof your_command_name_like_for_ex_ffmpeg)

19

zwischen -20 und 19

19 ist die niedrigste Priorität

Philippe Gachoud
quelle
8

Die Verwendung von "renice" im Terminal ist wie folgt:

Usage:
 renice [-n] <priority> [-p] <pid> [<pid>  ...]
 renice [-n] <priority> [-g] <pgrp> [<pgrp> ...]
 renice [-n] <priority> [-u] <user> [<user> ...]

Options:
 -g, --pgrp <id>        interpret as process group ID
 -h, --help             print help
 -n, --priority <num>   set the nice increment value
 -p, --pid <id>         force to be interpreted as process ID
 -u, --user <name|id>   interpret as username or user ID
 -v, --version          print version

Die Verwendung von "sudo" vor dem Befehl "renice" erhöht den Benutzer auf die Root-Ebene und erfordert ein Administrator- / Root-Passwort.

Wenn Sie z. B. den Prozess mit der PID (Prozess-ID) 2606 von der normalen Priorität auf die hohe Priorität erhöhen möchten , geben Sie das Terminal folgendermaßen ein:

sudo renice -n -5 -p 2606
user141344
quelle
3

Sie können einen Vorgang auch innerhalb von top wiederholen.

1) Oben anfangen

$ top

2) Renice durch Drücken von r. Sie werden aufgefordert, die Prozess-ID (PID) des Prozesses einzugeben, den Sie erneut ausführen möchten. Die Standard-PID ist der erste Prozess (einer, der die meisten Ressourcen verbraucht). Bestätigen Sie mit Enter. Stellen Sie den neuen Nizza-Wert von -20 (höhere Priorität) bis +19 (niedrigere Priorität) ein.

Bildbeschreibung hier eingeben

Timothy Pulliam
quelle