diff options
Diffstat (limited to '')
-rw-r--r-- | src/unix/Daemon.cxx | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/src/unix/Daemon.cxx b/src/unix/Daemon.cxx index 4bb11aeac..d16de8928 100644 --- a/src/unix/Daemon.cxx +++ b/src/unix/Daemon.cxx @@ -65,25 +65,15 @@ static int detach_fd = -1; void daemonize_kill(void) { - FILE *fp; - int pid; - if (pidfile.IsNull()) FatalError("no pid_file specified in the config file"); - fp = FOpen(pidfile, PATH_LITERAL("r")); - if (fp == nullptr) { - const std::string utf8 = pidfile.ToUTF8(); - FormatFatalSystemError("Unable to open pid file \"%s\"", - utf8.c_str()); - } - - if (fscanf(fp, "%i", &pid) != 1) { + const pid_t pid = ReadPidFile(pidfile); + if (pid < 0) { const std::string utf8 = pidfile.ToUTF8(); FormatFatalError("unable to read the pid from file \"%s\"", utf8.c_str()); } - fclose(fp); if (kill(pid, SIGTERM) < 0) FormatFatalSystemError("unable to kill process %i", |