From 3811e51b81320a574bb31aa64b6af56340012527 Mon Sep 17 00:00:00 2001 From: David Zeuthen Date: Tue, 18 Oct 2011 13:13:16 -0400 Subject: [PATCH] Add --no-debug option and use this for D-Bus activation Signed-off-by: David Zeuthen --- data/org.freedesktop.PolicyKit1.service.in | 2 +- src/polkitd/main.c | 27 ++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/data/org.freedesktop.PolicyKit1.service.in b/data/org.freedesktop.PolicyKit1.service.in index 5a54ca1..b6cd02b 100644 --- a/data/org.freedesktop.PolicyKit1.service.in +++ b/data/org.freedesktop.PolicyKit1.service.in @@ -1,4 +1,4 @@ [D-BUS Service] Name=org.freedesktop.PolicyKit1 -Exec=@libexecdir@/polkitd +Exec=@libexecdir@/polkitd --no-debug User=root diff --git a/src/polkitd/main.c b/src/polkitd/main.c index 33ea511..b21723f 100644 --- a/src/polkitd/main.c +++ b/src/polkitd/main.c @@ -22,6 +22,9 @@ #include "config.h" #include + +#include + #include #include @@ -33,8 +36,10 @@ static PolkitBackendAuthority *authority = NULL; static gpointer registration_id = NULL; static GMainLoop *loop = NULL; static gboolean opt_replace = FALSE; +static gboolean opt_no_debug = FALSE; static GOptionEntry opt_entries[] = { - {"replace", 0, 0, G_OPTION_ARG_NONE, &opt_replace, "Replace existing daemon", NULL}, + {"replace", 'r', 0, G_OPTION_ARG_NONE, &opt_replace, "Replace existing daemon", NULL}, + {"no-debug", 'n', 0, G_OPTION_ARG_NONE, &opt_no_debug, "Don't print debug information", NULL}, {NULL } }; @@ -120,6 +125,26 @@ main (int argc, goto out; } + /* If --no-debug is requested don't clutter stdout/stderr etc. + */ + if (opt_no_debug) + { + gint dev_null_fd; + dev_null_fd = open ("/dev/null", O_RDWR); + if (dev_null_fd >= 0) + { + dup2 (dev_null_fd, STDIN_FILENO); + dup2 (dev_null_fd, STDOUT_FILENO); + dup2 (dev_null_fd, STDERR_FILENO); + close (dev_null_fd); + } + else + { + g_warning ("Error opening /dev/null: %m"); + } + } + + loop = g_main_loop_new (NULL, FALSE); sigint_id = _g_posix_signal_watch_add (SIGINT, -- 1.7.6.4