f7d55de0f4565b8e32fba0ee874f8d34b79c3ace
[oweals/busybox.git] / 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 "libbb.h"
16 #include <stdio.h>
17 #include <utmp.h>
18 #include <time.h>
19 #include <stdlib.h>
20
21 int runlevel_main(int argc, char **argv);
22 int runlevel_main(int argc, char **argv)
23 {
24         struct utmp *ut;
25         char prev;
26
27         if (argc > 1) utmpname(argv[1]);
28
29         setutent();
30         while ((ut = getutent()) != NULL) {
31                 if (ut->ut_type == RUN_LVL) {
32                         prev = ut->ut_pid / 256;
33                         if (prev == 0) prev = 'N';
34                         printf("%c %c\n", prev, ut->ut_pid % 256);
35                         endutent();
36                         return 0;
37                 }
38         }
39
40         puts("unknown");
41         endutent();
42         return 1;
43 }