我怎样才能让我的所有流程都以美好开始 5

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

编辑2:解决方案

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

@nice soft priority 5
Run Code Online (Sandbox Code Playgroud)

pra*_*tri 7

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

root       hard/soft     priority    10
Run Code Online (Sandbox Code Playgroud)

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

根据维基百科页面

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

这是显示上述过程工作的快照:

此图是 /etc/security/limits.conf 文件的截图

这是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。

在此处输入图片说明