Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Niced进程优先于子进程_Linux_Nice - Fatal编程技术网

Linux Niced进程优先于子进程

Linux Niced进程优先于子进程,linux,nice,Linux,Nice,我已使用以下命令将最高优先级赋予sshd进程: nice -n -20 /sbin/sshd 但默认情况下,它也会将最高优先级赋予子进程(/bin/sh)。那么,是否可以将正常优先级(0)赋予子进程而不是最高优先级?不可能将正常优先级赋予niced进程的子进程,但我们可以在父进程分叉子进程之前在代码中分配正常优先级。这样,我们可以将正常优先级分配给子进程 请参阅从代码设置任何进程的优先级假定此sshd为OpenSSH v4.4或更新版本,您可能可以通过将/etc/ssh/sshd\u conf

我已使用以下命令将最高优先级赋予sshd进程:

nice -n -20 /sbin/sshd

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

不可能将正常优先级赋予niced进程的子进程,但我们可以在父进程分叉子进程之前在代码中分配正常优先级。这样,我们可以将正常优先级分配给子进程


请参阅从代码设置任何进程的优先级假定此sshd为OpenSSH v4.4或更新版本,您可能可以通过将/etc/ssh/sshd\u config中的ForceCommand选项设置为以下内容来获得所需的效果:

ForceCommand nice -n 0 $SSH_ORIGINAL_COMMAND
ForceCommand功能已记录在案。您还可以使用匹配块(记录在同一位置)修改某些端口、用户、IP地址等的行为

主要问题(文档中未提及)是,在执行初始化脚本(如bashrc等)后,ForceCommand会在用户的shell上运行,因此,在这些启动脚本完成之前,降低的优先级不会应用(希望这些脚本不会做任何计算密集型的事情……。

尝试使用一个更好的命令解释器

chsh -s "/usr/bin/nice -n 0 /bin/bash" username
用您最喜欢的shell替换bash


这样做可能会得到意想不到的结果,因此,请保留一个额外的会话作为恢复选项。

这可能是您问题的解决方案:@RicardoJ:对不起,我要讨论子进程的首要问题是:为什么您认为有必要以更高的优先级运行
sshd
?@paxdiablo:我正在低CPU级别的嵌入式系统中运行openssh子进程,这就是它的方式,除非您对fock()和friends进行了大量修补。例如,请参阅。如果在fork之前更改优先级,则更改也会影响父级。