【问题标题】:Does renice on a parent renice the child?是否对父母放弃对孩子的放弃?
【发布时间】:2010-11-06 21:28:14
【问题描述】:

我知道我是否对 shell 脚本进行了 nice(即:在它运行之前),所有从 shell 脚本开始的进程也会被 nice。

如果我启动一个 shell 脚本并 renice 它,所有子进程是否也都变成了 renice?

查看了 renice 手册页,没有提到子进程。

【问题讨论】:

    标签: shell nice renice


    【解决方案1】:

    子进程在创建时继承进程的当前优先级。这意味着,如果您放弃父级并启动子级,它将具有修改后的优先级。

    当你 renice 时已经在跑步的孩子不受影响。

    线索在fork() 手册页中(启动子是fork/exec 操作):

    fork() 创建的子进程与父进程的区别仅在于它的 PID 和 PPID,而且资源利用率设置为 0。

    【讨论】:

    • 在 shell 使用 renice 的进程组 (-g) 选项的情况下,也不会更改当前正在运行的子进程,因为它们执行的每个命令都会进入不同的进程组。但是大多数程序不会改变他们孩子的进程组,所以这是一种改变相关进程的方法。
    • 是的,我用“renice on a parent”计算,提问者的意思是特定的 PID。很明显,如果你 renice 一个进程组或用户,其他进程可能会受到影响。
    • @paxdiablo: 我希望子进程以它的默认优先级 0 而不是父进程的优先级开始?
    • @Rahul,提出问题的正确方法是提出问题,不要对作者几乎看不到的问题发表评论。跨度>
    • @paxdiablo:已经问过问题stackoverflow.com/questions/22904588/…
    猜你喜欢
    • 2018-03-22
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    相关资源
    最近更新 更多