Browse Source

Catch more PID path failures

rpm
J. King 3 years ago
parent
commit
47af739e47
  1. 6
      lib/CLI.php

6
lib/CLI.php

@ -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");

Loading…
Cancel
Save