pidof: support for omitted %PPID and additional separators
This commit introduces support for special %PPID value that can be passed to the -o option as a substitution for parent PID. It also allows users to use two additional separators for omitted PIDs - colon and semicolon.
This commit is contained in:
parent
8a2113bcf2
commit
f5d15f4718
4
pidof.1
4
pidof.1
@ -44,7 +44,9 @@ the current root directory of processes they do not own.
|
||||
Scripts too - this causes the program to also return process id's of
|
||||
shells running the named scripts.
|
||||
.IP "-o \fIomitpid\fP"
|
||||
Tells \fIpidof\fP to omit processes with that process id.
|
||||
Tells \fIpidof\fP to omit processes with that process id. The special
|
||||
pid \fB%PPID\fP can be used to name the parent process of the \fIpidof\fP
|
||||
program, in other words the calling shell or shell script.
|
||||
.SH "EXIT STATUS"
|
||||
.TP
|
||||
.B 0
|
||||
|
11
pidof.c
11
pidof.c
@ -246,10 +246,15 @@ static void add_to_omit_list (char *input_arg)
|
||||
pid_t omit_pid;
|
||||
|
||||
omit_str = NULL;
|
||||
omit_str = strtok(input_arg, ",");
|
||||
omit_str = strtok(input_arg, ",;:");
|
||||
while (omit_str) {
|
||||
|
||||
omit_pid = strtoul(omit_str, &endptr, 10);
|
||||
if (!strcmp(omit_str,"%PPID")) { /* keeping this %PPID garbage for backward compatibility only */
|
||||
omit_pid = getppid(); /* ... as it can be replaced with $$ in common shells */
|
||||
endptr = omit_str + sizeof("%PPID") - 1;
|
||||
} else {
|
||||
omit_pid = strtoul(omit_str, &endptr, 10);
|
||||
}
|
||||
|
||||
if (*endptr == '\0') {
|
||||
if (omit_count == omit_size) {
|
||||
@ -265,7 +270,7 @@ static void add_to_omit_list (char *input_arg)
|
||||
xwarnx(_("illegal omit pid value (%s)!\n"), omit_str);
|
||||
}
|
||||
|
||||
omit_str = strtok(NULL, ",");
|
||||
omit_str = strtok(NULL, ",;:");
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user