bit*_*ask 8 users settings nice
我知道 niceness 值是从父进程的 niceness 值继承的,但是我可以全局更改特定用户(我自己)的默认 niceness 值。
在这种情况下,我想到了一个小型便利服务器,它专门通过ssh. 所以,我想我可以将我的默认 shell 从/bin/bash改为/etc/bash5而/etc/bash5这个脚本是:
#!/bin/sh
nice -n 5 /bin/bash
#file privileges: root:root 755
Run Code Online (Sandbox Code Playgroud)
这让我觉得是一个可怕的黑客和容易出错的地方。一定会有更好的办法。
我最感兴趣的是通用解决方案,这也适用于台式机/笔记本电脑系统。
limits.conf更改,但没有按预期工作:root@server# addgroup nice
root@server# adduser myself nice
root@server# echo '@nice soft nice 5' >> /etc/security/limits.conf
Run Code Online (Sandbox Code Playgroud)
然后,从我的客户端机器,我说
myself@client$ ssh server
myself@server$ sleep 1h &
myself@server$ htop
Run Code Online (Sandbox Code Playgroud)
现在,该sleep过程的初始 niceness 值为0,但是如果我将值更改F8为 19,然后尝试再次减少它并F7 在 处停止5。
您实际上必须使用,而不是使用nicein 中的项目limits.conf,priority尽管它违反直觉。
@nice soft priority 5
Run Code Online (Sandbox Code Playgroud)
您可以为/etc/security/limits.conf文件中的特定用户设置优先级。
root hard/soft priority 10
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以为任何特定用户设置硬限制或软限制。因此,该 root 用户将启动的所有进程都将具有 5 作为默认优先级值。
根据维基百科页面:
为进程设置特定 niceness 值的确切数学效果取决于调度程序在 Unix 实现上的设计细节。
这是显示上述过程工作的快照:

这是limits.conf文件的快照,显示了我最后添加的一行
root hard priority 15
Run Code Online (Sandbox Code Playgroud)
更改此设置后,我使用以下命令启动了一个 ssh 会话 ssh root@localhost

该截图显示最后两行,这说明过去两个进程的nice值-bash,并sshd: root@pts/3为15。
编辑
这是快照,它表明您可以增加和减少流程的美好度

编辑2:
这是显示即使是普通用户也可以更改 niceness 值的 snapshort。
