Von man renice
:
Andere Benutzer als der Superuser dürfen nur die Priorität ihrer eigenen Prozesse ändern und ihren "netten Wert" (aus Sicherheitsgründen) nur monoton im Bereich von 0 bis PRIO_MAX (20) erhöhen. [...]
So kann ich renice
meine eigenen Prozesse aufwärts (mit niedrigerer Priorität) aber niemals abwärts steuern:
$ renice 10 22316
22316 (process ID) old priority 0, new priority 10
$ renice 9 22316
renice: failed to set priority for 22316 (process ID): Permission denied
Warum ist das? Ich kann verstehen, warum normale Benutzer keine netten Werte unter 0 einstellen können, aber warum kann ich die Priorität nicht erneut auf 9 erhöhen, da ich sie auf 10 verringern kann? Welchen "Sicherheitsgrund" gibt es dafür? Ich habe das Recht, einen Prozess mit einem netten Wert von 9 zu starten. Warum kann ich ihn dann nicht auf 9 ändern?
EDIT: Ich sollte lernen, nach unten zu scrollen. Es stellte sich heraus, dass dies als Fehler in aufgeführt ist man renice
:
BUGS
Non super-users can not increase scheduling priorities of their own
processes, even if they were the ones that decreased the priorities
in the first place.
Das ist noch verwirrender. Wenn sie dieses Verhalten als Fehler betrachten, warum nicht ändern? Der renice
Befehl ist in 4.0BSD erschienen, was meiner Meinung nach aus dem Jahr 1980 stammt. Dies sollte sehr einfach zu beheben sein, so dass sie einerseits beschlossen haben, ihn zu verlassen, und andererseits ihn als Fehler auflisten.
Antworten:
Seit Linux 2.6.12 hängt das vom Wert von RLIMIT_NICE limit (
ulimit -e
) ab. Dies kann Werte von 0 bis 40 annehmen. Diese Grenze ist die Grenze der Priorität des Prozesses (je größer diese Zahl, desto höher die Priorität, die ein Benutzer für einen Prozess festlegen kann).Sie werden feststellen, dass der Standardwert unter Ubuntu 10.04 20 und unter Debian Jessie 0 ist.
Ein Wert von
n
für dieses Limit bedeutet, dass ein Prozess ohne die CAP_NICE-Fähigkeit eine Prozesspriorität nur auf bis zu erhöhen kannn
, was bedeutet , dass die Feinheit auf eine Feinheit von verringert wird20 - n
. Bei einem Wert von 0 bedeutet dies, dass kein nicht privilegierter Benutzer die Nizza unter 20 senken kann, sodass kein nicht privilegierter Benutzer die Nizza senken kann.Bei einem Wert von 20 können nicht privilegierte Benutzer den Wert auf 0 zurücksetzen.
Es ist Sache des Administrators, zu entscheiden, ob er den Benutzern erlaubt, ihre Prozesspriorität zu senken, und auf welche Ebene, indem er das harte Limit dafür festlegt.
Informationen dazu, warum ein Administrator möglicherweise nicht möchte, dass Benutzer ihre Prozesspriorität verringern, finden Sie in der Antwort von Flup .
quelle
Es ist aus politischen Gründen, wie ich es nennen würde . Die Idee ist, dass normale Benutzer die Aktionen privilegierter Benutzer nicht überschreiben können.
Angenommen, Sie sind ein Benutzer auf einem riesigen gemeinsam genutzten Server. Sie führen ungeheure CPU-Hogging-Prozesse zum Nachteil der anderen Benutzer aus. Der Sysadmin ist ein
renice
Teil Ihrer Prozesse, weil er Sie nicht sehr mag. Das Betriebssystem kann sich nicht erinnern, wer das getan hatrenice
, aber es weiß, dass normale Benutzer die Aktion nicht rückgängig machen können. Auf diese Weise hat der Sysadmin die Kontrolle über die Prozessprioritäten der normalen Benutzer.quelle
man renice
.renice
nur von einem privilegierten Benutzer rückgängig gemacht werden kann.renice
dasroot
tat.Seltsam ? es funktioniert bei mir weiter
Beispiel
2. Bearbeitung
Konfigurationsänderungen
Und ich bin Mitglied der Audio-Gruppe, dies sollte die Latenz bei der Aufnahme mit Jack / Ardor und Buffer Xruns reduzieren.
Renice
quelle
cat /etc/lsb*
undrenice --version
.renice --version renice from util-linux-ng 2.17.2
aber immer noch unter AIX ist es nicht möglich