From f6372de6a94299b7fc543f0d8e93e62901a336a0 Mon Sep 17 00:00:00 2001 From: Joachim Nilsson Date: Wed, 26 Feb 2020 11:40:44 +0100 Subject: [PATCH] New function pid_file_read(), returns PID from a pid file Signed-off-by: Joachim Nilsson --- src/pid.c | 19 +++++++++++++++++++ src/pid.h | 1 + 2 files changed, 20 insertions(+) diff --git a/src/pid.c b/src/pid.c index aa94a1ca..3687ca69 100644 --- a/src/pid.c +++ b/src/pid.c @@ -109,6 +109,25 @@ char *pid_file(svc_t *svc) return pid_runpath(fn, path, sizeof(path)); } +pid_t pid_file_read(const char *fn) +{ + pid_t pid = 0; + FILE *fp; + char buf[42]; + + fp = fopen(fn, "r"); + if (!fp) + return -1; + + if (fgets(buf, sizeof(buf), fp)) { + chomp(buf); + pid = atoi(buf); + } + fclose(fp); + + return pid; +} + int pid_file_create(svc_t *svc) { FILE *fp; diff --git a/src/pid.h b/src/pid.h index a865c534..16f649ea 100644 --- a/src/pid.h +++ b/src/pid.h @@ -31,6 +31,7 @@ int pid_alive (pid_t pid); char *pid_get_name (pid_t pid, char *name, size_t len); char *pid_file (svc_t *svc); +pid_t pid_file_read (const char *fn); int pid_file_create (svc_t *svc); int pid_file_parse (svc_t *svc, char *arg);