summaryrefslogtreecommitdiff
path: root/src/core/service.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/service.c')
-rw-r--r--src/core/service.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/core/service.c b/src/core/service.c
index 3f8aabcf45..61b150cba8 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -1400,8 +1400,13 @@ static int service_load_pid_file(Service *s, bool may_warn) {
}
r = parse_pid(k, &pid);
- if (r < 0)
+ if (r < 0) {
+ if (may_warn)
+ log_info_unit(UNIT(s)->id,
+ "Failed to read PID from file %s: %s",
+ s->pid_file, strerror(-r));
return r;
+ }
if (kill(pid, 0) < 0 && errno != EPERM) {
if (may_warn)
@@ -1429,9 +1434,13 @@ static int service_load_pid_file(Service *s, bool may_warn) {
return r;
r = unit_watch_pid(UNIT(s), pid);
- if (r < 0)
+ if (r < 0) {
/* FIXME: we need to do something here */
+ log_warning_unit(UNIT(s)->id,
+ "Failed to watch PID %lu from service %s",
+ (unsigned long) pid, UNIT(s)->id);
return r;
+ }
return 0;
}
@@ -2824,6 +2833,9 @@ static int service_watch_pid_file(Service *s) {
goto fail;
/* the pidfile might have appeared just before we set the watch */
+ log_debug_unit(UNIT(s)->id,
+ "Trying to read %s's PID file %s in case it changed",
+ UNIT(s)->id, s->pid_file_pathspec->path);
service_retry_pid_file(s);
return 0;