summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--toolbox/ps.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/toolbox/ps.c b/toolbox/ps.c
index 7d6dfa0..d0a8db3 100644
--- a/toolbox/ps.c
+++ b/toolbox/ps.c
@@ -30,6 +30,7 @@ static char *nexttok(char **strp)
#define SHOW_ABI 64
static int display_flags = 0;
+static int ppid_filter = 0;
static void print_exe_abi(int pid);
@@ -145,6 +146,10 @@ static int ps_line(int pid, int tid, char *namefilter)
strcpy(user,pw->pw_name);
}
+ if(ppid_filter != 0 && ppid != ppid_filter) {
+ return 0;
+ }
+
if(!namefilter || !strncmp(cmdline[0] ? cmdline : name, namefilter, strlen(namefilter))) {
if (display_flags & SHOW_MACLABEL) {
fd = open(macline, O_RDONLY);
@@ -266,6 +271,10 @@ int ps_main(int argc, char **argv)
display_flags |= SHOW_CPU;
} else if(!strcmp(argv[1],"--abi")) {
display_flags |= SHOW_ABI;
+ } else if(!strcmp(argv[1],"--ppid")) {
+ ppid_filter = atoi(argv[2]);
+ argc--;
+ argv++;
} else if(isdigit(argv[1][0])){
pidfilter = atoi(argv[1]);
} else {