如何配置启动时启动服务的优先级

如何配置启动时启动服务的优先级

我想增加服务优良(降低 CPU 优先级)在启动过程中作为专用用户或组启动。我无法在/etc/security/limits.conf./limits.d/目录中为所需用户定义优先级,因为服务不会观察到该条目。(?)

例子

具体来说,我有几个装有 CentOS 6.6 的小型 vServer,并且想运行一个 tor 中继(洋葱路由器) 在每个服务器上。tor 守护进程在启动时作为服务启动,通过sudo /sbin/chkconfig(运行级别:2、3、4、5) 配置。tor 进程的用户和组是_tor

我必须在哪里更改用户 _tor 拥有的每个进程的 nice 或优先级?nice 值应在每次启动和手动服务启动时应用(service tor start)。

答案1

经典方法是在服务启动脚本中使用niceand/or 。你可能会遇到类似这样的情况:ionice

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

并将其更改为

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

或者,启动脚本通常会记录守护进程的 PID/var/run/pid-of-tor-daemon或类似内容,您可以renice在守护进程启动后使用该 PID。


更好的方法是使用 cgroups。这里的答案有点太长了,但是Red Hat 文档可能是一个有用的开始。

相关内容