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 Reutner-Fischer 13 */ 14 15#include <utmp.h> 16#include "libbb.h" 17 18int runlevel_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 19int 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} 44