pcntl_setpriority

(PHP 5, PHP 7, PHP 8)

pcntl_setpriorityAltera a prioridade de qualquer processo

Descrição

pcntl_setpriority(int $priority, ?int $process_id = null, int $mode = PRIO_PROCESS): bool

pcntl_setpriority() define a prioridade de process_id.

Parâmetros

priority

priority geralmente é um valor no intervalo -20 a 20. A prioridade padrão é 0, enquanto um valor numérico menor resulta em um agendamento mais favorável. Como os níveis de prioridade podem diferir entre tipos de sistema e versões de kernel, consulte a página de manual setpriority(2) do seu sistema para obter detalhes específicos.

process_id

Se null, o ID do processo atual é usado.

mode

Uma das constantes PRIO_PGRP, PRIO_USER, PRIO_PROCESS, PRIO_DARWIN_BG ou PRIO_DARWIN_THREAD.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.0.0 process_id agora é anulável.

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 2 notes

up
2
t dot stobbe at blackdogdev dot com
18 years ago
As for the renice function by leandro dot pereira at gmail dot com, this isn't true. pcntl_setpriority() doesn't set the nice level of a process, but instead sets the base priority of it. At first glance this might seem like the same thing, but on a system level, they are actually quite different.

In fact, if you're looking to use pcntl_setpriority() to prioritize your process (a tool or a daemon or what-not), I wouldn't recomend using setpriority at all, but renice it instead. Let the system manage priorities and you'll end up with the results you were looking for.

This applies only to POSIX based systems only (as does the function presented by leandro dot pereira at gmail dot com as well).
up
-1
leandro dot pereira at gmail dot com
20 years ago
The following snippet may be used under older versions of PHP to provide similar functionality. Tested only under Linux.

<?php
function _pcntl_setpriority($priority, $pid = 0)
{
$priority = (int)$priority;
$pid = (int)$pid;

if (
$priority > 20 && $priority < -20) {
return
False;
}
if (
$pid == 0) {
$pid = getmypid();
}

return
system("renice $priority -p $pid") != false;
}

?>
To Top