summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-09-29 14:07:18 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2009-09-29 14:07:18 +0200
commitcef7bce317368cce6c87d9bcf9745e43d1866076 (patch)
treed5f8c595fbf26f3331781cbc61d5f4b85e81af0e /src
parentd5bdbc372f3d6708df787d2f4d26bbd2134f2926 (diff)
downloadabrt-cef7bce317368cce6c87d9bcf9745e43d1866076.tar.gz
abrt-cef7bce317368cce6c87d9bcf9745e43d1866076.tar.xz
abrt-cef7bce317368cce6c87d9bcf9745e43d1866076.zip
add support for abrtd autostart
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'src')
-rw-r--r--src/Daemon/Daemon.cpp8
-rw-r--r--src/Daemon/Makefile.am3
-rw-r--r--src/Daemon/com.redhat.abrt.service4
-rw-r--r--src/Gui/CCDBusBackend.py17
4 files changed, 24 insertions, 8 deletions
diff --git a/src/Daemon/Daemon.cpp b/src/Daemon/Daemon.cpp
index 6445b6c..3b66bdb 100644
--- a/src/Daemon/Daemon.cpp
+++ b/src/Daemon/Daemon.cpp
@@ -647,13 +647,16 @@ int main(int argc, char** argv)
textdomain(PACKAGE);
#endif
- while ((opt = getopt(argc, argv, "dv")) != -1)
+ while ((opt = getopt(argc, argv, "dsv")) != -1)
{
switch (opt)
{
case 'd':
daemonize = false;
break;
+ case 's':
+ start_syslog_logging();
+ break;
case 'v':
g_verbose++;
break;
@@ -662,6 +665,7 @@ int main(int argc, char** argv)
"Usage: abrt [-dv]\n"
"\nOptions:"
"\n\t-d\tDo not daemonize"
+ "\n\t-s\tLog to syslog even with -d"
"\n\t-v\tVerbose"
);
}
@@ -701,7 +705,7 @@ int main(int argc, char** argv)
}
/* Child (daemon) continues */
setsid(); /* never fails */
- if (g_verbose == 0)
+ if (g_verbose == 0 && logmode != LOGMODE_SYSLOG)
start_syslog_logging();
}
diff --git a/src/Daemon/Makefile.am b/src/Daemon/Makefile.am
index 49898c1..a21eb9c 100644
--- a/src/Daemon/Makefile.am
+++ b/src/Daemon/Makefile.am
@@ -39,6 +39,9 @@ dist_daemonconf_DATA = abrt.conf
polkitconfdir = ${datadir}/polkit-1/actions
dist_polkitconf_DATA = org.fedoraproject.abrt.policy
+comredhatabrtservicedir = /usr/share/dbus-1/system-services
+dist_comredhatabrtservice_DATA = com.redhat.abrt.service
+
man_MANS = abrt.8 abrt.conf.5
EXTRA_DIST = $(man_MANS)
diff --git a/src/Daemon/com.redhat.abrt.service b/src/Daemon/com.redhat.abrt.service
new file mode 100644
index 0000000..163f276
--- /dev/null
+++ b/src/Daemon/com.redhat.abrt.service
@@ -0,0 +1,4 @@
+[D-BUS Service]
+Name=com.redhat.abrt
+Exec=/usr/sbin/abrtd -ds
+User=root
diff --git a/src/Gui/CCDBusBackend.py b/src/Gui/CCDBusBackend.py
index 7b952a6..844b371 100644
--- a/src/Gui/CCDBusBackend.py
+++ b/src/Gui/CCDBusBackend.py
@@ -122,12 +122,15 @@ class DBusManager(gobject.GObject):
# self.emit("analyze-complete", dump)
pass
+# Seems to be not needed at all. Not only that, it is actively harmful
+# when abrtd is autostarted by dbus-daemon: connect_to_daemon() would install
+# duplicate signal handlers!
def owner_changed_cb(self,name, old_owner, new_owner):
if(name == CC_NAME and new_owner):
- self.proxy = self.connect_to_daemon()
+ #self.proxy = self.connect_to_daemon()
self.emit("daemon-state-changed", "up")
if(name == CC_NAME and not(new_owner)):
- self.proxy = None
+ #self.proxy = None
self.emit("daemon-state-changed", "down")
@@ -138,10 +141,12 @@ class DBusManager(gobject.GObject):
self.uniq_name = self.bus.get_unique_name()
if not self.bus:
raise Exception(_("Can't connect to dbus"))
- if self.bus.name_has_owner(CC_NAME):
- self.proxy = self.bus.get_object(CC_IFACE, CC_PATH,introspect=False)
- else:
- raise Exception(_("Please check if abrt daemon is running."))
+ self.proxy = self.bus.get_object(CC_IFACE, CC_PATH, introspect=False)
+ # Can't do this: abrtd may be autostarted by dbus-daemon
+ #if self.bus.name_has_owner(CC_NAME):
+ # self.proxy = self.bus.get_object(CC_IFACE, CC_PATH, introspect=False)
+ #else:
+ # raise Exception(_("Please check if abrt daemon is running."))
if self.proxy:
self.cc = dbus.Interface(self.proxy, dbus_interface=CC_IFACE)