service: shortcut operations if the MAINPID= doesn't actually cause a change
authorLennart Poettering <lennart@poettering.net>
Mon, 27 Nov 2017 15:58:46 +0000 (16:58 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 27 Nov 2017 16:04:57 +0000 (17:04 +0100)
src/core/service.c

index e7e65d4..e7a829a 100644 (file)
@@ -3386,7 +3386,7 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags, FDSet *fds)
                         log_unit_warning(u, "A control process cannot also be the main process");
                 else if (pid == getpid_cached() || pid == 1)
                         log_unit_warning(u, "Service manager can't be main process, ignoring sd_notify() MAINPID= field");
-                else {
+                else if (pid != s->main_pid) {
                         service_set_main_pid(s, pid);
                         unit_watch_pid(UNIT(s), pid);
                         notify_dbus = true;