我想增加服务优良(降低 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
经典方法是在服务启动脚本中使用nice
and/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 文档可能是一个有用的开始。