
Ich möchte dieFreundlichkeit eines Dienstes(CPU-Priorität verringern) beim Bootvorgang als dedizierter Benutzer oder Gruppe gestartet. Ich kann die Niceness bzw. Priorität im Verzeichnis /etc/security/limits.conf
oder ./limits.d/
für den gewünschten Benutzer nicht festlegen, da der Eintrag bei Diensten nicht beachtet wird. (?)
Beispiel
Insbesondere habe ich ein paar kleine vServer mit CentOS 6.6 und möchte ein Tor-Relay betreiben (Der Zwiebelrouter) auf jedem. Der Tor-Daemon startet beim Booten als Dienst, konfiguriert über sudo /sbin/chkconfig
(Ausführungsebene: 2,3,4,5). Der Benutzer und die Gruppe für den Tor-Prozess sind _tor
.
Wo muss ich die Nice- bzw. Prioritätsstufe für jeden Prozess ändern, der dem Benutzer _tor gehört? Der Nice-Wert sollte bei jedem Booten und beim manuellen Dienststart ( service tor start
) angewendet werden.
Antwort1
nice
Der klassische Ansatz besteht darin , und/oder ionice
innerhalb des Dienststartskripts zu verwenden . Sie haben wahrscheinlich etwas wie:
case "$1" in
start)
echo "Starting tor daemon"
/path/to/tor-daemon
und ändern Sie das in
echo "Starting tor daemon"
nice /path/to/tor-daemon
Alternativ protokolliert das Startskript häufig die PID eines Daemons /var/run/pid-of-tor-daemon
oder ähnliches und Sie können renice
diese PID verwenden, nachdem der Daemon gestartet wurde.
Ein besserer Ansatz ist mit cgroups. Das ist etwas zu lang für eine Antwort hier, aber dieRed Hat-Dokumentationkönnte ein nützlicher Anfang sein.