获取和设置父进程和子进程的优先级值

时间:2014-08-21 08:46:11

标签: perl

我有一个perl脚本,它将创建一个子进程。我需要为这两个进程(父和子)

获取优先级(nice)值

我可以获得父母和子进程的pid,如下所示:

$parentPID = $$;
$childPID = fork();

如何在perl脚本中获取这些进程的优先级值?

2 个答案:

答案 0 :(得分:3)

检查getpriority(),其中PID的第一个参数为PRIO_PROCESS(您可以使用BSD::Resource导入此常量或仅使用零)

读取当前PID优先级并设置新优先级

nice -7 perl -E'say getpriority(0,$$); setpriority(0,$$,9); say getpriority(0,$$)'

输出

7
9

答案 1 :(得分:2)

使用Forks::Super CPAN模块。例如:

$pid = fork { os_priority => 10 };   # like nice(1) on Un*x

如果您不想使用CPAN模块,setpriority函数会设置进程,进程组或用户的当前优先级。