From f6ec6ef36486ce0b97901464cc6533f17ca7ca87 Mon Sep 17 00:00:00 2001 From: Christian Eggers Date: Mon, 21 Mar 2022 16:04:30 +0100 Subject: [PATCH] core: create GMainLoop after daemonizing The GMainLoop instance (and the default GMainContext singleton) is not required for trivial operations like --print-config, --version or --help). If running as SysV daemon, the event file descriptor is unnecessarily dup'ed from the parent to the child process. Signed-off-by: Christian Eggers https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1160 --- src/core/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/main.c b/src/core/main.c index e39a961416..1a9c3a652d 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -302,8 +302,6 @@ main(int argc, char *argv[]) g_type_ensure(G_TYPE_DBUS_CONNECTION); g_type_ensure(NM_TYPE_DBUS_MANAGER); - main_loop = g_main_loop_new(NULL, FALSE); - /* we determine a first-start (contrary to a restart during the same boot) * based on the existence of NM_CONFIG_DEVICE_STATE_DIR directory. */ config_cli = nm_config_cmd_line_options_new( @@ -403,6 +401,8 @@ main(int argc, char *argv[]) wrote_pidfile = nm_main_utils_write_pidfile(global_opt.pidfile); } + main_loop = g_main_loop_new(NULL, FALSE); + /* Set up unix signal handling - before creating threads, but after daemonizing! */ nm_main_utils_setup_signals(main_loop);