source: MondoRescue/branches/3.3/mindi-busybox/miscutils/runlevel.c@ 3647

Last change on this file since 3647 was 3621, checked in by Bruno Cornec, 10 years ago

New 3?3 banch for incorporation of latest busybox 1.25. Changing minor version to handle potential incompatibilities.

File size: 1.3 KB
Line 
1/* vi: set sw=4 ts=4: */
2/*
3 * 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 GPLv2 or later, see file LICENSE in this source tree.
11 *
12 * initially busyboxified by Bernhard Reutner-Fischer
13 */
14
15//usage:#define runlevel_trivial_usage
16//usage: "[FILE]"
17//usage:#define runlevel_full_usage "\n\n"
18//usage: "Find the current and previous system runlevel\n"
19//usage: "\n"
20//usage: "If no utmp FILE exists or if no runlevel record can be found,\n"
21//usage: "print \"unknown\""
22//usage:
23//usage:#define runlevel_example_usage
24//usage: "$ runlevel /var/run/utmp\n"
25//usage: "N 2"
26
27#include "libbb.h"
28
29int runlevel_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
30int runlevel_main(int argc UNUSED_PARAM, char **argv)
31{
32 struct utmpx *ut;
33 char prev;
34
35 if (argv[1]) utmpxname(argv[1]);
36
37 setutxent();
38 while ((ut = getutxent()) != NULL) {
39 if (ut->ut_type == RUN_LVL) {
40 prev = ut->ut_pid / 256;
41 if (prev == 0) prev = 'N';
42 printf("%c %c\n", prev, ut->ut_pid % 256);
43 if (ENABLE_FEATURE_CLEAN_UP)
44 endutxent();
45 return 0;
46 }
47 }
48
49 puts("unknown");
50
51 if (ENABLE_FEATURE_CLEAN_UP)
52 endutxent();
53 return 1;
54}
Note: See TracBrowser for help on using the repository browser.