note 89716 added to function.exec
| From: | bahri at bahri dot info | Date: | Fri, 20 Mar 2009 09:15:06 +0000 |
| Subject: | note 89716 added to function.exec | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-152183@lists.php.net to get a copy of this message | ||
pstools.inc.php(http://www.php.net/manual/tr/function.exec.php#59428 ) for linux
function PsExecute($command, $timeout = 60, $sleep = 2) {
// First, execute the process, get the process ID
$pid = PsExec($command);
if( $pid === false )
return false;
$cur = 0;
// Second, loop for $timeout seconds checking if process is running
while( $cur < $timeout ) {
sleep($sleep);
$cur += $sleep;
// If process is no longer running, return true;
echo "\n ---- $cur ------ \n";
if( !PsExists($pid) )
return true; // Process must have exited, success!
}
// If process is still running after timeout, kill the process and return false
PsKill($pid);
return false;
}
function PsExec($commandJob) {
$command = $commandJob.' > /dev/null 2>&1 & echo $!';
exec($command ,$op);
$pid = (int)$op[0];
if($pid!="") return $pid;
return false;
}
function PsExists($pid) {
exec("ps ax | grep $pid 2>&1", $output);
while( list(,$row) = each($output) ) {
$row_array = explode(" ", $row);
$check_pid = $row_array[0];
if($pid == $check_pid) {
return true;
}
}
return false;
}
function PsKill($pid) {
exec("kill -9 $pid", $output);
}
----
Server IP: 69.147.83.197
Probable Submitter: 78.186.13.234
----
Manual Page -- http://www.php.net/manual/en/function.exec.php
Edit -- https://master.php.net/note/edit/89716
Del: integrated -- https://master.php.net/note/delete/89716/integrated
Del: useless -- https://master.php.net/note/delete/89716/useless
Del: bad code -- https://master.php.net/note/delete/89716/bad+code
Del: spam -- https://master.php.net/note/delete/89716/spam
Del: non-english -- https://master.php.net/note/delete/89716/non-english
Del: in docs -- https://master.php.net/note/delete/89716/in+docs
Del: other reasons-- https://master.php.net/note/delete/89716
Reject -- https://master.php.net/note/reject/89716
Search -- https://master.php.net/manage/user-notes.php