chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
core/service: check if mainpid matches only if it is set
[elogind.git]
/
src
/
core
/
service.c
diff --git
a/src/core/service.c
b/src/core/service.c
index eb9cd234a960a3ad9cac45ff12505bb71432a1d2..ea47a5e327ead056e29eaf4149d2dee92297d409 100644
(file)
--- a/
src/core/service.c
+++ b/
src/core/service.c
@@
-3343,6
+3343,9
@@
static void service_notify_message(Unit *u, pid_t pid, char **tags) {
assert(u);
assert(u);
+ log_debug_unit(u->id, "%s: Got notification message from PID %lu (%s...)",
+ u->id, (unsigned long) pid, tags && *tags ? tags[0] : "(empty)");
+
if (s->notify_access == NOTIFY_NONE) {
log_warning_unit(u->id,
"%s: Got notification message from PID %lu, but reception is disabled.",
if (s->notify_access == NOTIFY_NONE) {
log_warning_unit(u->id,
"%s: Got notification message from PID %lu, but reception is disabled.",
@@
-3350,15
+3353,13
@@
static void service_notify_message(Unit *u, pid_t pid, char **tags) {
return;
}
return;
}
- if (s->notify_access == NOTIFY_MAIN && pid != s->main_pid) {
+ if (s->notify_access == NOTIFY_MAIN &&
s->main_pid != 0 &&
pid != s->main_pid) {
log_warning_unit(u->id,
"%s: Got notification message from PID %lu, but reception only permitted for PID %lu",
u->id, (unsigned long) pid, (unsigned long) s->main_pid);
return;
}
log_warning_unit(u->id,
"%s: Got notification message from PID %lu, but reception only permitted for PID %lu",
u->id, (unsigned long) pid, (unsigned long) s->main_pid);
return;
}
- log_debug_unit(u->id, "%s: Got message", u->id);
-
/* Interpret MAINPID= */
if ((e = strv_find_prefix(tags, "MAINPID=")) &&
(s->state == SERVICE_START ||
/* Interpret MAINPID= */
if ((e = strv_find_prefix(tags, "MAINPID=")) &&
(s->state == SERVICE_START ||