1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-22 13:12:41 +00:00

Catch more PID path failures

This commit is contained in:
J. King 2021-06-06 19:14:37 -04:00
parent 2c7b16ed27
commit 47af739e47

View file

@ -330,11 +330,15 @@ USAGE_TEXT;
protected function resolvePID(string $pidfile): string { protected function resolvePID(string $pidfile): string {
$dir = dirname($pidfile); $dir = dirname($pidfile);
$file = basename($pidfile); $file = basename($pidfile);
if ($base = @realpath($dir)) { if (!strlen($file)) {
throw new \Exception("Specified PID file location must be a regular file");
} elseif ($base = @realpath($dir)) {
$out = "$base/$file"; $out = "$base/$file";
if (file_exists($out)) { if (file_exists($out)) {
if (!is_writable($out)) { if (!is_writable($out)) {
throw new \Exception("PID file is not writable"); throw new \Exception("PID file is not writable");
} elseif (!is_file($out)) {
throw new \Exception("Specified PID file location must be a regular file");
} }
} elseif (!is_writable($base)) { } elseif (!is_writable($base)) {
throw new \Exception("Cannot create PID file"); throw new \Exception("Cannot create PID file");