41 lines
815 B
PHP
41 lines
815 B
PHP
<?php
|
|
class pidfile {
|
|
private $_file;
|
|
private $_running;
|
|
|
|
public function __construct($dir, $name) {
|
|
$this->_file = "$dir/$name.pid";
|
|
|
|
if (file_exists($this->_file)) {
|
|
$pid = trim(@file_get_contents($this->_file));
|
|
if (($pid != "") AND posix_kill($pid, 0)) {
|
|
$this->_running = true;
|
|
}
|
|
}
|
|
|
|
if (! $this->_running) {
|
|
$pid = getmypid();
|
|
file_put_contents($this->_file, $pid);
|
|
}
|
|
}
|
|
|
|
public function __destruct() {
|
|
if ((! $this->_running) && file_exists($this->_file)) {
|
|
@unlink($this->_file);
|
|
}
|
|
}
|
|
|
|
public function is_already_running() {
|
|
return $this->_running;
|
|
}
|
|
|
|
public function running_time() {
|
|
return(time() - @filectime($this->_file));
|
|
}
|
|
|
|
public function kill() {
|
|
if (file_exists($this->_file))
|
|
return(posix_kill(file_get_contents($this->_file), SIGTERM));
|
|
}
|
|
}
|