Como configurar a gentileza ou prioridade do serviço iniciado na inicialização

Como configurar a gentileza ou prioridade do serviço iniciado na inicialização

Eu quero aumentar ogentileza de um serviço(diminuir a prioridade da CPU) iniciado como um usuário ou grupo dedicado durante o processo de inicialização. Não consigo definir a gentileza ou prioridade no diretório /etc/security/limits.confou ./limits.d/para o usuário desejado porque a entrada não será observada para serviços. (?)

Exemplo

Em particular, tenho alguns vServers pequenos com CentOS 6.6 e quero executar um tor relay (O roteador cebola) em cada. O daemon tor inicia na inicialização como um serviço, configurado via sudo /sbin/chkconfig(nível de execução: 2,3,4,5). O usuário e o grupo do processo tor são _tor.

Onde devo alterar o nível legal ou de prioridade para cada processo do qual o usuário _tor é o proprietário? O valor nice deve ser aplicado em cada inicialização e no início manual do serviço ( service tor start).

Responder1

A abordagem clássica é usar nicee/ou ionicedentro do script de inicialização do serviço. Você provavelmente tem algo como:

case "$1" in
    start)
    echo "Starting tor daemon"
    /path/to/tor-daemon

e mude isso para

    echo "Starting tor daemon"
    nice /path/to/tor-daemon

Alternativamente, o script de inicialização geralmente registra o PID de um daemon /var/run/pid-of-tor-daemonou similar e você pode usar reniceesse PID após o daemon ser iniciado.


Uma abordagem melhor é com cgroups. Isso é um pouco longo demais para uma resposta aqui, mas oDocumentação da Red Hatpode ser um começo útil.

informação relacionada