aboutsummaryrefslogtreecommitdiffstats
path: root/src/unix/Daemon.cxx
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/unix/Daemon.cxx14
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",