Ich weiß, dass die Nizza-Werte vom Nizza-Wert des übergeordneten Prozesses geerbt werden, kann aber den Standard-Nizza-Wert für einen bestimmten Benutzer (mich selbst) global ändern.
In diesem Fall habe ich einen kleinen Convenience-Server im Sinn, auf den ausschließlich über zugegriffen wird ssh
. Ich denke also, ich könnte meine Standard-Shell von /bin/bash
zu ändern , /etc/bash5
während /etc/bash5
dieses Skript:
#!/bin/sh
nice -n 5 /bin/bash
#file privileges: root:root 755
Dies scheint mir ein schrecklicher Hack und fehleranfällig zu sein. Es muss einen besseren Weg geben.
Ich interessiere mich hauptsächlich für allgemeine Lösungen, die auch für ein Desktop / Laptop-System gelten.
Bearbeiten: Ich habe die vorgeschlagene limits.conf
Änderung versucht , aber es funktioniert nicht wie erwartet:
root@server# addgroup nice
root@server# adduser myself nice
root@server# echo '@nice soft nice 5' >> /etc/security/limits.conf
Dann sage ich von meinem Client-Computer aus
myself@client$ ssh server
myself@server$ sleep 1h &
myself@server$ htop
Jetzt hat der sleep
Prozess einen anfänglichen Freundlichkeitswert von0
, aber wenn ich den Wert mit F8
auf 19 ändere und dann versuche, ihn erneut zu reduzieren F7
, stoppt er bei5
.
Edit2: Lösung
Anstatt das nice
Element in zu verwenden limits.conf
, müssen Sie es tatsächlich verwenden, priority
obwohl es nicht intuitiv ist.
@nice soft priority 5
renice -n 5
in dein~/.profile
?bash5
Ansatz, ich gebe dir das. Aber es bricht immer noch, wenn ich sagessh myserver -- somecommand
, nicht wahr?limits.conf
. Wofür ist deine Ausgabeps -o pid,nice,cmd
?nice
.Antworten:
Sie können die Priorität für einen bestimmten Benutzer in der
/etc/security/limits.conf
Datei festlegen .Auf diese Weise können Sie ein hartes oder weiches Limit für einen bestimmten Benutzer festlegen. Alle Prozesse, die dieser Root-Benutzer startet, haben also 5 als Standardprioritätswert.
Laut Wikipedia-Seite :
Hier ist der Schnappschuss, der zeigt, wie das obige Verfahren funktioniert:
Dies ist eine Momentaufnahme einer
limits.conf
Datei, die eine Zeile zeigt, die ich zuletzt hinzugefügt habeNachdem ich dies geändert hatte, startete ich eine SSH-Sitzung mit dem Befehl
ssh root@localhost
Dieser Screenshot zeigt die letzten beiden Zeilen, die den schönen Wert der letzten beiden Prozesse zeigen
-bash
undsshd: root@pts/3
15 sein sollen.Bearbeiten
Hier ist der Schnappschuss, der zeigt, dass Sie die Schönheit eines Prozesses erhöhen und verringern können
Bearbeiten 2:
Hier ist der Schnappschuss, der zeigt, dass selbst normale Benutzer den Wert für die Schönheit ändern können.
quelle
A niceness of −20 is the highest priority and 19 or 20 is the lowest priority
. Also zuerst musst du verstehen, dass Freundlichkeit und Priorität gleich sind. Und ich möchte klarstellen, dass dieshard and soft limits
aber nicht so isthard priority
undsoft niceness
...Es sieht so aus, als könnten Sie eine Standardpriorität für einen Benutzer in festlegen
limits.conf
, mit einer Zeile wie:Siehe man limit.conf .
quelle
@nice soft nice 5
aberssh
ing in die Maschine und Ausführungsleep 1h
zeigt als Nettigkeit mit0
inhtop
. Gibt es einen Hinweis, warum die Einstellung nicht akzeptiert wurde? Ich bin auf Debian Squeeze.@nice
in dem obigen Kommentar. Es sollte derjenige des Benutzers Ihrer Linux-Maschine sein.limits.conf
Datei eingefügt wird?