-<?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));
- }
-}
-?>