如何使我的所有流程都从美好开始5


8

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

在这种情况下,我想到了一个小型的便捷服务器,该服务器专门通过进行访问ssh。所以,我想我可以我的默认外壳从改变/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,但是如果我将的值更改F8为19,然后尝试再次将F7 5减小,则该值在停止

Edit2:解决方案

尽管有悖常理,但实际上不必使用中的nice项目limits.conf,而是必须使用priority

@nice soft priority 5

也许把renice -n 5你的~/.profile
2012年

@ jw013:比我的bash5方法更好的主意,我给你。但是,如果我说ssh myserver -- somecommand不是,它仍然会中断吗?
bitmask

@bitmask。我无法复制您的结果limits.conf。您的输出是ps -o pid,nice,cmd什么?
donothing成功地

1
请发布您自己问题的解决方案作为答案,而不是编辑您的问题。谢谢!(可以为您自己的问题提供自己的答案。)
mattdm 2012年

另外请注意:这不是您要的,但是您可能会发现cgroups提供了比您更有效的方式来执行您想要的操作(降低了特定用户的优先级)nice
mattdm 2012年

Answers:


7

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

root       hard/soft     priority    10

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

根据维基百科页面

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

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

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

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

root     hard     priority    15

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

在此处输入图片说明

该截图显示最后两行,这说明过去两个进程的nice值-bash,并sshd: root@pts/3为15。

编辑

这是快照,表明您可以增加和减少过程的优美性 在此处输入图片说明

编辑2:

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

在此处输入图片说明


我说的是美好,而不是优先。正如我在另一个答案中所说,它似乎没有被接受。我是否必须重新启动某些守护程序?
bitmask 2012年

@bitmask:这是我的工作中...我要在我的答案等待中添加快照...
pradeepchhetri 2012年

@bitmask:我已经用快照更新了答案.. :)
pradeepchhetri

有之间的差异美好的事物优先级。我完全同意可以更改硬优先级,但是我想更改软性。那是另一回事。
bitmask 2012年

@bitmask:访问Wiki页面,A niceness of −20 is the highest priority and 19 or 20 is the lowest priority。所以第一u必须明白,美好的事物和优先权same..And我想清楚了,这些都是hard and soft limits,但它不喜欢hard prioritysoft niceness..
pradeepchhetri

1

似乎 可以在中为用户设置默认优先级limits.conf,并使用以下行:

username    soft  priority  5

参见manlimits.conf


听起来不错。我只是给它一个镜头(使用一个特殊的群体虽然)@nice soft nice 5,但ssh荷兰国际集团到机器和执行sleep 1h节目具有美好的事物0htop。有什么线索为什么不接受该设置?我在挤Debian。
bitmask

@nice上面的注释中有什么..它应该是您的linux机器的用户之一。
pradeepchhetri 2012年

@pradeepchhetri:请查看我的OP的编辑。这是一个群组名称。
bitmask 2012年

为什么在limits.conf文件中输入条目时在组名前面使用@ ?
pradeepchhetri

@pradeepchhetri:因为手册页上是这样说的?
bitmask
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.