40 lines
		
	
	
	
		
			814 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			814 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 != "") && 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));
 | 
						|
	}
 | 
						|
}
 |