diff options
Diffstat (limited to 'miscutils')
-rw-r--r-- | miscutils/Config.in | 9 | ||||
-rw-r--r-- | miscutils/Makefile.in | 1 | ||||
-rw-r--r-- | miscutils/runlevel.c | 43 |
3 files changed, 53 insertions, 0 deletions
diff --git a/miscutils/Config.in b/miscutils/Config.in index f07ca36b3..4d81dde0d 100644 --- a/miscutils/Config.in +++ b/miscutils/Config.in | |||
@@ -255,6 +255,15 @@ config CONFIG_MT | |||
255 | to advance or rewind a tape past a specified number of archive | 255 | to advance or rewind a tape past a specified number of archive |
256 | files on the tape. | 256 | files on the tape. |
257 | 257 | ||
258 | config BB_APPLET_RUNLEVEL | ||
259 | bool "runlevel" | ||
260 | default n | ||
261 | help | ||
262 | find the current and previous system runlevel. | ||
263 | |||
264 | This applet uses utmp but does not rely on busybox supporing | ||
265 | utmp on purpose. It is used by e.g. emdebian via /etc/init.d/rc. | ||
266 | |||
258 | config CONFIG_RX | 267 | config CONFIG_RX |
259 | bool "rx" | 268 | bool "rx" |
260 | default n | 269 | default n |
diff --git a/miscutils/Makefile.in b/miscutils/Makefile.in index 808ce36de..5bd522c11 100644 --- a/miscutils/Makefile.in +++ b/miscutils/Makefile.in | |||
@@ -24,6 +24,7 @@ MISCUTILS-${CONFIG_LESS} += less.o | |||
24 | MISCUTILS-$(CONFIG_MAKEDEVS) += makedevs.o | 24 | MISCUTILS-$(CONFIG_MAKEDEVS) += makedevs.o |
25 | MISCUTILS-$(CONFIG_MOUNTPOINT) += mountpoint.o | 25 | MISCUTILS-$(CONFIG_MOUNTPOINT) += mountpoint.o |
26 | MISCUTILS-$(CONFIG_MT) += mt.o | 26 | MISCUTILS-$(CONFIG_MT) += mt.o |
27 | MISCUTILS-$(BB_APPLET_RUNLEVEL) += runlevel.o | ||
27 | MISCUTILS-$(CONFIG_RX) += rx.o | 28 | MISCUTILS-$(CONFIG_RX) += rx.o |
28 | MISCUTILS-$(CONFIG_SETSID) += setsid.o | 29 | MISCUTILS-$(CONFIG_SETSID) += setsid.o |
29 | MISCUTILS-$(CONFIG_STRINGS) += strings.o | 30 | MISCUTILS-$(CONFIG_STRINGS) += strings.o |
diff --git a/miscutils/runlevel.c b/miscutils/runlevel.c new file mode 100644 index 000000000..dfa846f81 --- /dev/null +++ b/miscutils/runlevel.c | |||
@@ -0,0 +1,43 @@ | |||
1 | /* | ||
2 | * runlevel Prints out the previous and the current runlevel. | ||
3 | * | ||
4 | * Version: @(#)runlevel 1.20 16-Apr-1997 MvS | ||
5 | * | ||
6 | * This file is part of the sysvinit suite, | ||
7 | * Copyright 1991-1997 Miquel van Smoorenburg. | ||
8 | * | ||
9 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. | ||
10 | * | ||
11 | * initially busyboxified by Bernhard Fischer | ||
12 | */ | ||
13 | |||
14 | #include <stdio.h> | ||
15 | #include <utmp.h> | ||
16 | #include <time.h> | ||
17 | #include <stdlib.h> | ||
18 | |||
19 | #include "busybox.h" | ||
20 | |||
21 | int runlevel_main(int argc, char *argv[]) | ||
22 | { | ||
23 | struct utmp *ut; | ||
24 | char prev; | ||
25 | |||
26 | if (argc > 1) utmpname(argv[1]); | ||
27 | |||
28 | setutent(); | ||
29 | while ((ut = getutent()) != NULL) { | ||
30 | if (ut->ut_type == RUN_LVL) { | ||
31 | prev = ut->ut_pid / 256; | ||
32 | if (prev == 0) prev = 'N'; | ||
33 | printf("%c %c\n", prev, ut->ut_pid % 256); | ||
34 | endutent(); | ||
35 | return (0); | ||
36 | } | ||
37 | } | ||
38 | |||
39 | printf("unknown\n"); | ||
40 | endutent(); | ||
41 | return (1); | ||
42 | } | ||
43 | |||