我怎样才能让我的所有流程都从niceness 5开始

我怎样才能让我的所有流程都从niceness 5开始

我知道友善值是从父进程的友善值继承的,但是我可以全局更改特定用户(我自己)的默认友善值吗?

在这种情况下,我想到了一个小型便利服务器,它只能通过ssh.所以,我想我可以将我的默认 shell 从以下脚本更改/bin/bash为:/etc/bash5/etc/bash5

#!/bin/sh
nice -n 5 /bin/bash

#file privileges: root:root 755

在我看来,这是一个可怕的黑客行为,并且容易出错。一定会有更好的办法。

我最感兴趣的是通用解决方案,这也适用于台式机/笔记本电脑系统。


编辑:我尝试了建议的limits.conf更改,但它没有按预期工作:

root@server# addgroup nice
root@server# adduser myself nice
root@server# echo '@nice soft nice 5' >> /etc/security/limits.conf

然后,从我的客户端机器上,我说

myself@client$ ssh server
myself@server$ sleep 1h &
myself@server$ htop

现在,该sleep过程有一个初始美好值0,但如果我将值更改为F819,然后尝试再次减少它F7 它停在5

编辑2:解决方案

您实际上必须使用而不是使用nice中的项目,尽管这是违反直觉的。limits.confpriority

@nice soft priority 5

答案1

/etc/security/limits.conf您可以在文件中设置特定用户的优先级。

root       hard/soft     priority    10

这样您就可以为任何特定用户设置硬或软限制。因此,该 root 用户将启动的所有进程的默认优先级值都是 5。

根据维基百科页面:

为进程设置特定的良好值的确切数学效果取决于调度程序在 Unix 实现上的设计细节。

这是显示上述过程有效的快照:

该图片是 /etc/security/limits.conf 文件的屏幕截图

这是limits.conf文件的快照,显示了我最后添加的一行

root     hard     priority    15

更改此项后,我使用命令启动了一个 ssh 会话ssh root@localhost

在此输入图像描述

此屏幕截图显示了最后两行,显示了最后两个进程的好值-bashsshd: root@pts/3为 15。

编辑

这是快照,显示您可以增加和减少流程的良好程度 在此输入图像描述

编辑2:

这是一个简短的说明,即使是普通用户也可以更改友善值。

在此输入图像描述

答案2

好像 您可以在 中为用户设置默认优先级limits.conf,使用如下行:

username    soft  priority  5

见人限制.conf

相关内容