2009-06-30 155 views
7

我知道如果我很好的shell脚本(即:运行之前),所有从shell脚本开始的进程也将被删除。renice对父母renice孩子?

如果我启动一个shell脚本和renice,那么所有的子进程都会被重新排列呢?

看着renice手册页,并没有提及子进程。

回答

6

孩子在创建过程中继承当前过程的优先级。这意味着,如果您修改父母并开始孩子,它将具有修改后的优先级。

renice时已经运行的孩子不受影响。

线索是在fork()手册页(起始子是fork/exec操作):

叉()创建一个子进程,从父进程仅在它的PID和PPID不同,并且在资源利用率设置为0.

+0

在使用renice的进程组(-g)选项的shell的情况下,也不会更改当前正在运行的子进程,因为它们执行的每个命令都会进入不同的进程组。但是大多数程序不会改变他们孩子的过程组,所以这是一种改变相关过程的方式。 – 2009-06-30 06:51:55