41 lines
		
	
	
	
		
			798 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			798 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 (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));
 | 
						|
	}
 | 
						|
}
 | 
						|
?>
 |