32 lines
		
	
	
	
		
			588 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			588 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;
 | |
| 	}
 | |
| }
 | |
| ?>
 |