Niced流程优先考虑子流程

时间:2014-04-07 05:56:28

标签: linux nice

我使用以下命令将sshd进程放在最高优先级:

nice -n -20 /sbin/sshd

但默认情况下,它也会优先考虑子进程(/ bin / sh)。那么,是否可以将正常优先级(0)赋予子进程而不是最高优先级?

3 个答案:

答案 0 :(得分:3)

假设这个sshd是OpenSSH v4.4或更新版本,你可以通过将/ etc / ssh / sshd_config中的ForceCommand选项设置为以下内容来获得你想要的效果:

ForceCommand nice -n 0 $SSH_ORIGINAL_COMMAND

ForceCommand功能记录在案here。您还可以使用匹配块(在同一位置记录)来修改某些端口,用户,IP地址等的行为。

主要问题(在文档中没有提到)是ForceCommand在执行初始化脚本(例如.bashrc等)之后在用户的shell上运行,因此降低的优先级不会适用,直到那些启动脚本完成(希望那些没有做任何计算密集的事情......)。

答案 1 :(得分:0)

它不可能给niced进程的子进程提供正常的优先级,但是我们可以在父代分叉之前在代码中分配普通优先级,这样我们可以为子进程分配正常的优先级。

请参阅setpriority,以便为代码

中的任何流程设置优先级

答案 2 :(得分:-1)

尝试使用niced shell命令解释器。

chsh -s "/usr/bin/nice -n 0 /bin/bash" username

用你最喜欢的shell替换bash。

这样做可能会产生意外结果,因此请将额外的会话保持为恢复选项。