busybox/miscutils/runlevel.c
<<
>>
Prefs
   1/* vi: set sw=4 ts=4: */
   2/*
   3 * runlevel     Prints out the previous and the current runlevel.
   4 *
   5 * Version:     @(#)runlevel  1.20  16-Apr-1997  MvS
   6 *
   7 *              This file is part of the sysvinit suite,
   8 *              Copyright 1991-1997 Miquel van Smoorenburg.
   9 *
  10 * Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
  11 *
  12 * initially busyboxified by Bernhard Reutner-Fischer
  13 */
  14
  15#include <utmp.h>
  16#include "libbb.h"
  17
  18int runlevel_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
  19int runlevel_main(int argc, char **argv)
  20{
  21        struct utmp *ut;
  22        char prev;
  23
  24        if (argc > 1) utmpname(argv[1]);
  25
  26        setutent();
  27        while ((ut = getutent()) != NULL) {
  28                if (ut->ut_type == RUN_LVL) {
  29                        prev = ut->ut_pid / 256;
  30                        if (prev == 0) prev = 'N';
  31                        printf("%c %c\n", prev, ut->ut_pid % 256);
  32                        if (ENABLE_FEATURE_CLEAN_UP)
  33                                endutent();
  34                        return 0;
  35                }
  36        }
  37
  38        puts("unknown");
  39
  40        if (ENABLE_FEATURE_CLEAN_UP)
  41                endutent();
  42        return 1;
  43}
  44