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
。
您实际上必须使用,而不是使用nice
in 中的项目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。
归档时间: |
|
查看次数: |
5405 次 |
最近记录: |