aboutsummaryrefslogtreecommitdiffstats
path: root/include/pidfile.php
blob: 47df8d1f4624ef43fa2430d013f4000f8edad411 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?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;
	}
}
?>