Hallo Bernhard,
On Tue, Oct 06, 2009 at 11:32:54 +0200, Bernhard Schiffner wrote:
Ich bekomme als non-root bei getrlimit( RLIMIT_RTPRIO, ...) immer 0 zurueck und will wissen, wie ich das fuer bestimmte Nutzer | Gruppen | Programme aendern kann. Ein erster Eintrag in /etc/security/limits half nicht weiter.
Die Datei heisst /etc/security/limits.conf, nicht /etc/security/limits.
Auf einem Testsystem (Ubuntu 8.04 mit selbstkompiliertem 2.6.27.10) hat es mit folgenden Zeilen in der /etc/security/limits.conf funktioniert:
ich soft rtprio 20 ich hard rtprio 20
Nachdem sich der User "ich" per ssh[*] neu eingeloggt hat, sitzt die real-time prio auf 20, zu sehen mit cat /proc/$$/limits bzw. ulimit -a in der Shell.
Danach kann ich mit Deinem Tool die Prio eines sleep-Prozesses auf 10 setzen:
$ sleep 1h & [1] 17011 $ ./rtlim 17011 10 Resource-Limits: RLIMIT_RTPRIO (soft): 20 RLIMIT_RTPRIO (hard): 20 Request: Policy of pid 17011 = 1 Priority of pid 17011 = 10 Status: Policy of pid 17011 = 1 Priority of pid 17011 = 10
Wenn ich stattdessen versuche, die Prio auf 50 zu setzen, geht es schief, weil damit das rlimit von 20 ueberschritten wird.
[*] Jede andere Login-Methode, die pam_limits.so in ihrer PAM-Konfiguration benutzt, sollte auch funktionieren.
Gruss, Chris