systemctl: don't return LSB status error codes for systemctl show

Use them only for systemctl status.

https://bugzilla.redhat.com/show_bug.cgi?id=637183
This commit is contained in:
Lennart Poettering 2010-11-21 22:40:03 +01:00
parent 600a328fc2
commit be8088a2fb
2 changed files with 11 additions and 6 deletions

8
TODO
View File

@ -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.
@ -71,6 +69,12 @@
* 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

View 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);