So konfigurieren Sie die Nettigkeit oder Priorität des beim Booten gestarteten Dienstes

So konfigurieren Sie die Nettigkeit oder Priorität des beim Booten gestarteten Dienstes

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.confoder ./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

niceDer klassische Ansatz besteht darin , und/oder ioniceinnerhalb 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-daemonoder ähnliches und Sie können renicediese 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.

verwandte Informationen