Initial public busybox upstream commit
[busybox4maemo] / miscutils / runlevel.c
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 Fischer
13  */
14
15 #include <utmp.h>
16 #include "libbb.h"
17
18 int runlevel_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
19 int 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 }