我有一个perl脚本,它将创建一个子进程。我需要为这两个进程(父和子)
获取优先级(nice)值我可以获得父母和子进程的pid,如下所示:
$parentPID = $$;
$childPID = fork();
如何在perl脚本中获取这些进程的优先级值?
答案 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函数会设置进程,进程组或用户的当前优先级。