chiark / gitweb /
systemctl: don't return LSB status error codes for systemctl show
authorLennart Poettering <lennart@poettering.net>
Sun, 21 Nov 2010 21:40:03 +0000 (22:40 +0100)
committerLennart Poettering <lennart@poettering.net>
Sun, 21 Nov 2010 21:40:03 +0000 (22:40 +0100)
Use them only for systemctl status.

https://bugzilla.redhat.com/show_bug.cgi?id=637183

TODO
src/systemctl.c

diff --git a/TODO b/TODO
index 12e292e..1069896 100644 (file)
--- a/TODO
+++ b/TODO
@@ -28,8 +28,6 @@
 
 * set_put(), hashmap_put() return values check. i.e. == 0 doesn't free()!
 
-* chkconfig/systemd enable glue
-
 * io priority during initialization
 
 * if a service fails too often, make the service enter failed mode, and the socket, too.
 
 * isolate multi-user.target doesn't start a getty@tty1 if we run it from graphical.target
 
+Fedora:
+
+* obsolete readhead in system pkgs
+
+* chkconfig → systemd enable/daemon-reload glue
+
 External:
 
 * make cryptsetup lower --iter-time
index 0948e61..4768fb2 100644 (file)
@@ -2338,7 +2338,7 @@ static int print_property(const char *name, DBusMessageIter *iter) {
         return 0;
 }
 
-static int show_one(DBusConnection *bus, const char *path, bool show_properties, bool *new_line) {
+static int show_one(const char *verb, DBusConnection *bus, const char *path, bool show_properties, bool *new_line) {
         DBusMessage *m = NULL, *reply = NULL;
         const char *interface = "";
         int r;
@@ -2438,7 +2438,8 @@ static int show_one(DBusConnection *bus, const char *path, bool show_properties,
                 print_status_info(&info);
 
         if (!streq_ptr(info.active_state, "active") &&
-            !streq_ptr(info.active_state, "reloading"))
+            !streq_ptr(info.active_state, "reloading") &&
+            streq(verb, "status"))
                 /* According to LSB: "program not running" */
                 r = 3;
 
@@ -2477,7 +2478,7 @@ static int show(DBusConnection *bus, char **args, unsigned n) {
                 /* If not argument is specified inspect the manager
                  * itself */
 
-                ret = show_one(bus, "/org/freedesktop/systemd1", show_properties, &new_line);
+                ret = show_one(args[0], bus, "/org/freedesktop/systemd1", show_properties, &new_line);
                 goto finish;
         }
 
@@ -2611,7 +2612,7 @@ static int show(DBusConnection *bus, char **args, unsigned n) {
                         goto finish;
                 }
 
-                if ((r = show_one(bus, path, show_properties, &new_line)) != 0)
+                if ((r = show_one(args[0], bus, path, show_properties, &new_line)) != 0)
                         ret = r;
 
                 dbus_message_unref(m);