aboutsummaryrefslogtreecommitdiff
path: root/src/rc-status.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2007-09-28 15:04:15 +0000
committerRoy Marples <roy@marples.name>2007-09-28 15:04:15 +0000
commitfc1bfe4234714cdcc6b158ec04cb3f92c7c8caa7 (patch)
treeb56a10eea9c3fbe8134dc294e831c8e2c6d398d2 /src/rc-status.c
parent7274301be24a70c094e8c91a36f3e8b6156f53ba (diff)
Crashed is not a baselayout state as such
Diffstat (limited to 'src/rc-status.c')
-rw-r--r--src/rc-status.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/rc-status.c b/src/rc-status.c
index dacbe851..b862a27c 100644
--- a/src/rc-status.c
+++ b/src/rc-status.c
@@ -35,23 +35,25 @@ static void print_service (char *service)
einfo_color_t color = ECOLOR_BAD;
if (state & RC_SERVICE_STOPPING)
- snprintf (status, sizeof (status), "stopping ");
+ snprintf (status, sizeof (status), "stopping ");
else if (state & RC_SERVICE_STARTING) {
snprintf (status, sizeof (status), "starting ");
color = ECOLOR_WARN;
} else if (state & RC_SERVICE_INACTIVE) {
snprintf (status, sizeof (status), "inactive ");
color = ECOLOR_WARN;
- } else if (state & RC_SERVICE_CRASHED)
- snprintf (status, sizeof (status), " crashed ");
- else if (state & RC_SERVICE_STARTED) {
- snprintf (status, sizeof (status), " started ");
- color = ECOLOR_GOOD;
+ } else if (state & RC_SERVICE_STARTED) {
+ if (geteuid () == 0 && rc_service_daemons_crashed (service))
+ snprintf (status, sizeof (status), " crashed ");
+ else {
+ snprintf (status, sizeof (status), " started ");
+ color = ECOLOR_GOOD;
+ }
} else if (state & RC_SERVICE_SCHEDULED) {
snprintf (status, sizeof (status), "scheduled");
color = ECOLOR_WARN;
} else
- snprintf (status, sizeof (status), " stopped ");
+ snprintf (status, sizeof (status), " stopped ");
ebracket (cols, color, status);
}