PHP Doku:: Ändert die Priorität irgendeines Prozesses - function.pcntl-setpriority.html

Verlauf / Chronik / History: (24) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzErweiterungen zur ProzesskontrolleProzesskontrollePCNTL Funktionenpcntl_setpriority

Ein Service von Reinhard Neidl - Webprogrammierung.

PCNTL Funktionen

<<pcntl_getpriority

pcntl_signal_dispatch>>

pcntl_setpriority

(PHP 5)

pcntl_setpriority Ändert die Priorität irgendeines Prozesses

Beschreibung

bool pcntl_setpriority ( int $priority [, int $pid [, int $process_identifier ]] )

pcntl_setpriority() setzt die Priorität von pid auf priority. Wenn pid nicht angegeben ist, wird die Pid des aktuellen Prozesses benutzt.

priority ist gewöhnlich ein Wert im Bereich zwischen -20 und 20. Die vorgegebene Priorität ist 0 während ein kleinerer numerischer Wert günstigeres Scheduling hervorruft. Weil die Prioritätsstufen sich zwischen Systemtypen und Kernelversionen unterscheiden können schauen Sie bitte in die setpriority(2) man Seite Ihres Systems nach spezifischen Details.

process_identifier ist einer der Werte PRIO_PGRP, PRIO_USER, oder PRIO_PROCESS.

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.


2 BenutzerBeiträge:
- Beiträge aktualisieren...
t dot stobbe at blackdogdev dot com
28.08.2006 0:49
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).
leandro dot pereira at gmail dot com
23.12.2004 16:08
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;
}

?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)