0

この例をphpサイトで見つけました。コマンドを実行し、実行中のプロセスを監視したいと思います。クラスコードの下を見つけてください。

class Process{
private $pid;
private $command;

public function __construct($cl=false){
    if ($cl != false){
        $this->command = $cl;
        $this->runCom();
    }
}
private function runCom(){
    $command = 'nohup '.$this->command.' > /dev/null 2>&1 & echo $!';
    exec($command ,$op);
    $this->pid = (int)$op[0];
}

public function setPid($pid){
    $this->pid = $pid;
}

public function getPid(){
    return $this->pid;
}

public function status(){
    $command = 'ps -p '.$this->pid;
    exec($command,$op);
    if (!isset($op[1]))return false;
    else return true;
}

public function start(){
    if ($this->command != '')$this->runCom();
    else return true;
}

public function stop(){
    $command = 'kill '.$this->pid;
    exec($command);
    if ($this->status() == false)return true;
    else return false;
}

以下は、私がそれを実行するために使用したスクリプトです。

require 'class.php';
$process = new Process('ls -al');
    // Then you can start/stop/ check status of the job.
    $process.stop();
    $process.start();
    if ($process.status()){
        echo "The process is currently running";
    }else{
        echo "The process is not running.";
    }

未定義の関数start()というエラーが表示されます

4

1 に答える 1

0

試す:

$process->start();

これが正しいphp構文です。

于 2012-11-30T10:27:46.833 に答える