X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsystemctl%2Fsystemctl.c;h=24543ee06db3d6e0dcd1112d14a582e0a28b6917;hb=3b05b8b3b503caf525fa72440a3f9f4bae75268b;hp=71bf17d475ba1937a384d3474386594e14b135d6;hpb=175728c45fae8a2e1aa9d725ee2fbc7aa34e6dbf;p=elogind.git diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 71bf17d47..24543ee06 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -3550,7 +3550,7 @@ static int show_one(const char *verb, DBusConnection *bus, const char *path, boo if (!streq_ptr(info.active_state, "active") && !streq_ptr(info.active_state, "reloading") && - streq(verb, "status")) + streq(verb, "status")) { /* According to LSB: "program not running" */ /* 0: program is running or service is OK * 1: program is dead and /var/run pid file exists @@ -3558,10 +3558,11 @@ static int show_one(const char *verb, DBusConnection *bus, const char *path, boo * 3: program is not running * 4: program or service status is unknown */ - if (info.pid_file) + if (info.pid_file && access(info.pid_file, F_OK) == 0) r = 1; else r = 3; + } while ((p = info.exec)) { LIST_REMOVE(ExecStatusInfo, exec, info.exec, p);