IF_FINDFS(APPLET(findfs, BB_DIR_SBIN, BB_SUID_MAYBE))
IF_FLOCK(APPLET(flock, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_FOLD(APPLET_NOEXEC(fold, fold, BB_DIR_USR_BIN, BB_SUID_DROP, fold))
-IF_FREE(APPLET(free, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_FREERAMDISK(APPLET(freeramdisk, BB_DIR_SBIN, BB_SUID_DROP))
//IF_E2FSCK(APPLET_ODDNAME(fsck.ext2, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, fsck_ext2))
//IF_E2FSCK(APPLET_ODDNAME(fsck.ext3, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, fsck_ext3))
IF_FTPD(APPLET(ftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_FTPGET(APPLET_ODDNAME(ftpget, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpget))
IF_FTPPUT(APPLET_ODDNAME(ftpput, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpput))
-IF_FUSER(APPLET(fuser, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_GETENFORCE(APPLET(getenforce, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_GETOPT(APPLET(getopt, BB_DIR_BIN, BB_SUID_DROP))
IF_GETSEBOOL(APPLET(getsebool, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_IPRULE(APPLET(iprule, BB_DIR_SBIN, BB_SUID_DROP))
IF_IPTUNNEL(APPLET(iptunnel, BB_DIR_SBIN, BB_SUID_DROP))
IF_KBD_MODE(APPLET(kbd_mode, BB_DIR_BIN, BB_SUID_DROP))
-IF_KILL(APPLET(kill, BB_DIR_BIN, BB_SUID_DROP))
-IF_KILLALL(APPLET_ODDNAME(killall, kill, BB_DIR_USR_BIN, BB_SUID_DROP, killall))
-IF_KILLALL5(APPLET_ODDNAME(killall5, kill, BB_DIR_USR_SBIN, BB_SUID_DROP, killall5))
//IF_LENGTH(APPLET_NOFORK(length, length, BB_DIR_USR_BIN, BB_SUID_DROP, length))
IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN, BB_SUID_DROP, ln))
IF_LOAD_POLICY(APPLET(load_policy, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_OD(APPLET(od, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_OPENVT(APPLET(openvt, BB_DIR_USR_BIN, BB_SUID_DROP))
//IF_PARSE(APPLET(parse, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_PGREP(APPLET(pgrep, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_PIDOF(APPLET(pidof, BB_DIR_BIN, BB_SUID_DROP))
IF_PIVOT_ROOT(APPLET(pivot_root, BB_DIR_SBIN, BB_SUID_DROP))
-IF_PKILL(APPLET_ODDNAME(pkill, pgrep, BB_DIR_USR_BIN, BB_SUID_DROP, pkill))
IF_POPMAILDIR(APPLET(popmaildir, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_PRINTENV(APPLET_NOFORK(printenv, printenv, BB_DIR_BIN, BB_SUID_DROP, printenv))
IF_PRINTF(APPLET_NOFORK(printf, printf, BB_DIR_USR_BIN, BB_SUID_DROP, printf))
-IF_PS(APPLET(ps, BB_DIR_BIN, BB_SUID_DROP))
IF_PSCAN(APPLET(pscan, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_PWD(APPLET_NOFORK(pwd, pwd, BB_DIR_BIN, BB_SUID_DROP, pwd))
IF_RDATE(APPLET(rdate, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_READPROFILE(APPLET(readprofile, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_REALPATH(APPLET(realpath, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_REFORMIME(APPLET(reformime, BB_DIR_BIN, BB_SUID_DROP))
-IF_RENICE(APPLET(renice, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_RESET(APPLET(reset, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_RESIZE(APPLET(resize, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_RESTORECON(APPLET_ODDNAME(restorecon, setfiles, BB_DIR_SBIN, BB_SUID_DROP, restorecon))
IF_STTY(APPLET(stty, BB_DIR_BIN, BB_SUID_DROP))
IF_SUM(APPLET(sum, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_SWITCH_ROOT(APPLET(switch_root, BB_DIR_SBIN, BB_SUID_DROP))
-IF_BB_SYSCTL(APPLET(sysctl, BB_DIR_SBIN, BB_SUID_DROP))
IF_TAC(APPLET_NOEXEC(tac, tac, BB_DIR_USR_BIN, BB_SUID_DROP, tac))
IF_TAIL(APPLET(tail, BB_DIR_USR_BIN, BB_SUID_DROP))
/* IF_TC(APPLET(tc, BB_DIR_SBIN, BB_SUID_DROP)) */
IF_TFTP(APPLET(tftp, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_TFTPD(APPLET(tftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
#endif
-IF_TOP(APPLET(top, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_TR(APPLET(tr, BB_DIR_USR_BIN, BB_SUID_DROP))
/* Needs socket(AF_INET, SOCK_RAW, IPPROTO_ICMP), therefore BB_SUID_MAYBE: */
IF_TRACEROUTE(APPLET(traceroute, BB_DIR_USR_BIN, BB_SUID_MAYBE))
IF_UNEXPAND(APPLET_ODDNAME(unexpand, expand, BB_DIR_USR_BIN, BB_SUID_DROP, unexpand))
IF_UNIQ(APPLET(uniq, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_UNIX2DOS(APPLET_NOEXEC(unix2dos, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, unix2dos))
-IF_UPTIME(APPLET(uptime, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_USLEEP(APPLET_NOFORK(usleep, usleep, BB_DIR_BIN, BB_SUID_DROP, usleep))
IF_UUDECODE(APPLET(uudecode, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_UUENCODE(APPLET(uuencode, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_VCONFIG(APPLET(vconfig, BB_DIR_SBIN, BB_SUID_DROP))
-IF_WATCH(APPLET(watch, BB_DIR_BIN, BB_SUID_DROP))
IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami))
IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes))
INSERT
-config FREE
- bool "free"
- default y
- select PLATFORM_LINUX #sysinfo()
- help
- free displays the total amount of free and used physical and swap
- memory in the system, as well as the buffers used by the kernel.
- The shared memory column should be ignored; it is obsolete.
-
-config FUSER
- bool "fuser"
- default y
- help
- fuser lists all PIDs (Process IDs) that currently have a given
- file open. fuser can also list all PIDs that have a given network
- (TCP or UDP) port open.
-
-config KILL
- bool "kill"
- default y
- help
- The command kill sends the specified signal to the specified
- process or process group. If no signal is specified, the TERM
- signal is sent.
-
-config KILLALL
- bool "killall"
- default y
- depends on KILL
- help
- killall sends a signal to all processes running any of the
- specified commands. If no signal name is specified, SIGTERM is
- sent.
-
-config KILLALL5
- bool "killall5"
- default y
- depends on KILL
-
-config PGREP
- bool "pgrep"
- default y
- help
- Look for processes by name.
-
-config PIDOF
- bool "pidof"
- default y
- help
- Pidof finds the process id's (pids) of the named programs. It prints
- those id's on the standard output.
-
-config FEATURE_PIDOF_SINGLE
- bool "Enable argument for single shot (-s)"
- default y
- depends on PIDOF
- help
- Support argument '-s' for returning only the first pid found.
-
-config FEATURE_PIDOF_OMIT
- bool "Enable argument for omitting pids (-o)"
- default y
- depends on PIDOF
- help
- Support argument '-o' for omitting the given pids in output.
- The special pid %PPID can be used to name the parent process
- of the pidof, in other words the calling shell or shell script.
-
-config PKILL
- bool "pkill"
- default y
- help
- Send signals to processes by name.
-
-config PS
- bool "ps"
- default y
- help
- ps gives a snapshot of the current processes.
-
-config FEATURE_PS_WIDE
- bool "Enable wide output option (-w)"
- default y
- depends on PS && !DESKTOP
- help
- Support argument 'w' for wide output.
- If given once, 132 chars are printed, and if given more
- than once, the length is unlimited.
-
-config FEATURE_PS_LONG
- bool "Enable long output option (-l)"
- default y
- depends on PS && !DESKTOP
- help
- Support argument 'l' for long output.
- Adds fields PPID, RSS, START, TIME & TTY
-
-config FEATURE_PS_TIME
- bool "Enable time and elapsed time output"
- default y
- depends on PS && DESKTOP
- select PLATFORM_LINUX
- help
- Support -o time and -o etime output specifiers.
-
-config FEATURE_PS_ADDITIONAL_COLUMNS
- bool "Enable additional ps columns"
- default y
- depends on PS && DESKTOP
- help
- Support -o rgroup, -o ruser, -o nice output specifiers.
-
-config FEATURE_PS_UNUSUAL_SYSTEMS
- bool "Support Linux prior to 2.4.0 and non-ELF systems"
- default n
- depends on FEATURE_PS_TIME
- help
- Include support for measuring HZ on old kernels and non-ELF systems
- (if you are on Linux 2.4.0+ and use ELF, you don't need this)
-
-config RENICE
- bool "renice"
- default y
- help
- Renice alters the scheduling priority of one or more running
- processes.
-
-config BB_SYSCTL
- bool "sysctl"
- default y
- help
- Configure kernel parameters at runtime.
-
config FEATURE_SHOW_THREADS
bool "Support for showing threads in ps/pstree/top"
default y
Enables the ps -T option, showing of threads in pstree,
and 'h' command in top.
-config WATCH
- bool "watch"
- default y
- help
- watch is used to execute a program periodically, showing
- output to the screen.
-
endmenu
lib-y:=
INSERT
-lib-$(CONFIG_FREE) += free.o
-lib-$(CONFIG_FUSER) += fuser.o
-lib-$(CONFIG_KILL) += kill.o
-lib-$(CONFIG_ASH) += kill.o # used for built-in kill by ash
-lib-$(CONFIG_PGREP) += pgrep.o
-lib-$(CONFIG_PKILL) += pgrep.o
-lib-$(CONFIG_PIDOF) += pidof.o
-lib-$(CONFIG_PS) += ps.o
-lib-$(CONFIG_RENICE) += renice.o
-lib-$(CONFIG_BB_SYSCTL) += sysctl.o
-lib-$(CONFIG_TOP) += top.o
-lib-$(CONFIG_UPTIME) += uptime.o
-lib-$(CONFIG_WATCH) += watch.o
+
+lib-$(CONFIG_ASH) += kill.o # used for built-in kill by ash
*
* Licensed under GPLv2, see file LICENSE in this source tree.
*/
+//config:config FREE
+//config: bool "free"
+//config: default y
+//config: select PLATFORM_LINUX #sysinfo()
+//config: help
+//config: free displays the total amount of free and used physical and swap
+//config: memory in the system, as well as the buffers used by the kernel.
+//config: The shared memory column should be ignored; it is obsolete.
-/* getopt not needed */
+//applet:IF_FREE(APPLET(free, BB_DIR_USR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_FREE) += free.o
//usage:#define free_trivial_usage
//usage: "" IF_DESKTOP("[-b/k/m/g]")
*
* Licensed under GPLv2, see file LICENSE in this source tree.
*/
+//config:config FUSER
+//config: bool "fuser"
+//config: default y
+//config: help
+//config: fuser lists all PIDs (Process IDs) that currently have a given
+//config: file open. fuser can also list all PIDs that have a given network
+//config: (TCP or UDP) port open.
+
+//applet:IF_FUSER(APPLET(fuser, BB_DIR_USR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_FUSER) += fuser.o
//usage:#define fuser_trivial_usage
//usage: "[OPTIONS] FILE or PORT/PROTO"
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//config:config KILL
+//config: bool "kill"
+//config: default y
+//config: help
+//config: The command kill sends the specified signal to the specified
+//config: process or process group. If no signal is specified, the TERM
+//config: signal is sent.
+//config:
+//config:config KILLALL
+//config: bool "killall"
+//config: default y
+//config: depends on KILL
+//config: help
+//config: killall sends a signal to all processes running any of the
+//config: specified commands. If no signal name is specified, SIGTERM is
+//config: sent.
+//config:
+//config:config KILLALL5
+//config: bool "killall5"
+//config: default y
+//config: depends on KILL
+//config:
+
+//applet:IF_KILL(APPLET(kill, BB_DIR_BIN, BB_SUID_DROP))
+//applet:IF_KILLALL(APPLET_ODDNAME(killall, kill, BB_DIR_USR_BIN, BB_SUID_DROP, killall))
+//applet:IF_KILLALL5(APPLET_ODDNAME(killall5, kill, BB_DIR_USR_SBIN, BB_SUID_DROP, killall5))
+
+//kbuild:lib-$(CONFIG_KILL) += kill.o
+//kbuild:lib-$(CONFIG_KILLALL) += kill.o
+//kbuild:lib-$(CONFIG_KILLALL5) += kill.o
//usage:#define kill_trivial_usage
//usage: "[-l] [-SIG] PID..."
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//config:config PGREP
+//config: bool "pgrep"
+//config: default y
+//config: help
+//config: Look for processes by name.
+//config:
+//config:config PKILL
+//config: bool "pkill"
+//config: default y
+//config: help
+//config: Send signals to processes by name.
+
+//applet:IF_PGREP(APPLET(pgrep, BB_DIR_USR_BIN, BB_SUID_DROP))
+//applet:IF_PKILL(APPLET_ODDNAME(pkill, pgrep, BB_DIR_USR_BIN, BB_SUID_DROP, pkill))
+
+//kbuild:lib-$(CONFIG_PGREP) += pgrep.o
+//kbuild:lib-$(CONFIG_PKILL) += pgrep.o
//usage:#define pgrep_trivial_usage
//usage: "[-flnovx] [-s SID|-P PPID|PATTERN]"
*
* Licensed under GPLv2, see file LICENSE in this source tree.
*/
+//config:config PIDOF
+//config: bool "pidof"
+//config: default y
+//config: help
+//config: Pidof finds the process id's (pids) of the named programs. It prints
+//config: those id's on the standard output.
+//config:
+//config:config FEATURE_PIDOF_SINGLE
+//config: bool "Enable argument for single shot (-s)"
+//config: default y
+//config: depends on PIDOF
+//config: help
+//config: Support argument '-s' for returning only the first pid found.
+//config:
+//config:config FEATURE_PIDOF_OMIT
+//config: bool "Enable argument for omitting pids (-o)"
+//config: default y
+//config: depends on PIDOF
+//config: help
+//config: Support argument '-o' for omitting the given pids in output.
+//config: The special pid %PPID can be used to name the parent process
+//config: of the pidof, in other words the calling shell or shell script.
+
+//applet:IF_PIDOF(APPLET(pidof, BB_DIR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_PIDOF) += pidof.o
//usage:#if (ENABLE_FEATURE_PIDOF_SINGLE || ENABLE_FEATURE_PIDOF_OMIT)
//usage:#define pidof_trivial_usage
*
* Licensed under GPLv2, see file LICENSE in this source tree.
*/
+//config:config PS
+//config: bool "ps"
+//config: default y
+//config: help
+//config: ps gives a snapshot of the current processes.
+//config:
+//config:config FEATURE_PS_WIDE
+//config: bool "Enable wide output option (-w)"
+//config: default y
+//config: depends on PS && !DESKTOP
+//config: help
+//config: Support argument 'w' for wide output.
+//config: If given once, 132 chars are printed, and if given more
+//config: than once, the length is unlimited.
+//config:
+//config:config FEATURE_PS_LONG
+//config: bool "Enable long output option (-l)"
+//config: default y
+//config: depends on PS && !DESKTOP
+//config: help
+//config: Support argument 'l' for long output.
+//config: Adds fields PPID, RSS, START, TIME & TTY
+//config:
+//config:config FEATURE_PS_TIME
+//config: bool "Enable time and elapsed time output"
+//config: default y
+//config: depends on PS && DESKTOP
+//config: select PLATFORM_LINUX
+//config: help
+//config: Support -o time and -o etime output specifiers.
+//config:
+//config:config FEATURE_PS_ADDITIONAL_COLUMNS
+//config: bool "Enable additional ps columns"
+//config: default y
+//config: depends on PS && DESKTOP
+//config: help
+//config: Support -o rgroup, -o ruser, -o nice output specifiers.
+//config:
+//config:config FEATURE_PS_UNUSUAL_SYSTEMS
+//config: bool "Support Linux prior to 2.4.0 and non-ELF systems"
+//config: default n
+//config: depends on FEATURE_PS_TIME
+//config: help
+//config: Include support for measuring HZ on old kernels and non-ELF systems
+//config: (if you are on Linux 2.4.0+ and use ELF, you don't need this)
+
+//applet:IF_PS(APPLET(ps, BB_DIR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_PS) += ps.o
//usage:#if ENABLE_DESKTOP
//usage:
* options -p, -g, and -u are treated as mode switches for the
* following IDs (if any). Multiple switches are allowed.
*/
+//config:config RENICE
+//config: bool "renice"
+//config: default y
+//config: help
+//config: Renice alters the scheduling priority of one or more running
+//config: processes.
+
+//applet:IF_RENICE(APPLET(renice, BB_DIR_USR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_RENICE) += renice.o
//usage:#define renice_trivial_usage
//usage: "[-n] PRIORITY [[-p | -g | -u] ID...]..."
* v1.01 - added -p <preload> to preload values from a file
* v1.01.1 - busybox applet aware by <solar@gentoo.org>
*/
+//config:config BB_SYSCTL
+//config: bool "sysctl"
+//config: default y
+//config: help
+//config: Configure kernel parameters at runtime.
+
+//applet:IF_BB_SYSCTL(APPLET(sysctl, BB_DIR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_BB_SYSCTL) += sysctl.o
//usage:#define sysctl_trivial_usage
//usage: "[OPTIONS] [KEY[=VALUE]]..."
* cp stat meminfo loadavg proc
* chroot . ./top -bn1 >top1.out
*/
-
//config:config TOP
//config: bool "top"
//config: default y
//config: help
//config: Enable 's' in top (gives lots of memory info).
+//applet:IF_TOP(APPLET(top, BB_DIR_USR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_TOP) += top.o
+
#include "libbb.h"
#include "common_bufsiz.h"
*
* Added FEATURE_UPTIME_UTMP_SUPPORT flag.
*/
-
-/* getopt not needed */
-
//config:config UPTIME
//config: bool "uptime"
//config: default y
//config: help
//config: Makes uptime display the number of users currently logged on.
+//applet:IF_UPTIME(APPLET(uptime, BB_DIR_USR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_UPTIME) += uptime.o
+
//usage:#define uptime_trivial_usage
//usage: ""
//usage:#define uptime_full_usage "\n\n"
/* BB_AUDIT SUSv3 N/A */
/* BB_AUDIT GNU defects -- only option -n is supported. */
+//config:config WATCH
+//config: bool "watch"
+//config: default y
+//config: help
+//config: watch is used to execute a program periodically, showing
+//config: output to the screen.
+
+//applet:IF_WATCH(APPLET(watch, BB_DIR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_WATCH) += watch.o
+
//usage:#define watch_trivial_usage
//usage: "[-n SEC] [-t] PROG ARGS"
//usage:#define watch_full_usage "\n\n"