Linux has an idea of process name that is visible in /proc/$pid/comm.  This
is "ovs-vswitchd" for a freshly started ovs-vswitchd process.  When the
monitor code restarted a crash child, it changed it to the empty string.
This confused the daemon_is_running check in ovs-lib.in, which checks
comm.  This commit fixes the problem by setting the program name as comm
in newly restarted children.

VMware-BZ: #2191724
Signed-off-by: Ben Pfaff <[email protected]>
---
 lib/daemon-unix.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/daemon-unix.c b/lib/daemon-unix.c
index 3ad1c62889cf..6169763c294c 100644
--- a/lib/daemon-unix.c
+++ b/lib/daemon-unix.c
@@ -428,7 +428,7 @@ monitor_daemon(pid_t daemon_pid)
 
     /* Running in new daemon process. */
     ovs_cmdl_proctitle_restore();
-    set_subprogram_name("");
+    set_subprogram_name(program_name);
 }
 
 /* If daemonization is configured, then starts daemonization, by forking and
-- 
2.16.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to