X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=miscutils%2Frunlevel.c;h=0b2098564595d178518aec9ef1240fe3bad8df7a;hb=d72e804e6db1bd6eb2417961004b4fe33aba9384;hp=9d38b791fca1627269a636b1e8a268f5cf37a9e7;hpb=5bc8c005a8e15c43285bc595a8d404de67a482ac;p=oweals%2Fbusybox.git diff --git a/miscutils/runlevel.c b/miscutils/runlevel.c index 9d38b791f..0b2098564 100644 --- a/miscutils/runlevel.c +++ b/miscutils/runlevel.c @@ -11,7 +11,20 @@ * * initially busyboxified by Bernhard Reutner-Fischer */ - +//config:config RUNLEVEL +//config: bool "runlevel (518 bytes)" +//config: default y +//config: depends on FEATURE_UTMP +//config: help +//config: find the current and previous system runlevel. +//config: +//config: This applet uses utmp but does not rely on busybox supporing +//config: utmp on purpose. It is used by e.g. emdebian via /etc/init.d/rc. + +//applet:IF_RUNLEVEL(APPLET_NOEXEC(runlevel, runlevel, BB_DIR_SBIN, BB_SUID_DROP, runlevel)) + +//kbuild:lib-$(CONFIG_RUNLEVEL) += runlevel.o + //usage:#define runlevel_trivial_usage //usage: "[FILE]" //usage:#define runlevel_full_usage "\n\n" @@ -29,19 +42,19 @@ int runlevel_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int runlevel_main(int argc UNUSED_PARAM, char **argv) { - struct utmp *ut; + struct utmpx *ut; char prev; - if (argv[1]) utmpname(argv[1]); + if (argv[1]) utmpxname(argv[1]); - setutent(); - while ((ut = getutent()) != NULL) { + setutxent(); + while ((ut = getutxent()) != NULL) { if (ut->ut_type == RUN_LVL) { prev = ut->ut_pid / 256; if (prev == 0) prev = 'N'; printf("%c %c\n", prev, ut->ut_pid % 256); if (ENABLE_FEATURE_CLEAN_UP) - endutent(); + endutxent(); return 0; } } @@ -49,6 +62,6 @@ int runlevel_main(int argc UNUSED_PARAM, char **argv) puts("unknown"); if (ENABLE_FEATURE_CLEAN_UP) - endutent(); + endutxent(); return 1; }