我使用以下命令将sshd进程放在最高优先级:
nice -n -20 /sbin/sshd
但默认情况下,它也会优先考虑子进程(/ bin / sh)。那么,是否可以将正常优先级(0)赋予子进程而不是最高优先级?
答案 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。
这样做可能会产生意外结果,因此请将额外的会话保持为恢复选项。