Merge branch 'masatake/procps-pidof-sep-option'

References:
 procps-ng/procps!58
This commit is contained in:
Craig Small 2018-03-02 21:43:27 +11:00
commit 825469fcb6
2 changed files with 13 additions and 2 deletions

View File

@ -27,6 +27,8 @@ pidof -- find the process ID of a running program.
.IR omitpid[,omitpid..] ]
.RB [ \-o
.IR omitpid[,omitpid..].. ]
.RB [ \-S
.IR separator ]
.B program
.RB [ program.. ]
.SH DESCRIPTION
@ -47,6 +49,9 @@ shells running the named scripts.
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.
.IP "-S \fIseparator\fP"
Use \fIseparator\fP as a separator put between pids. Used only when
more than one pids are printed for the program.
.SH "EXIT STATUS"
.TP
.B 0

10
pidof.c
View File

@ -64,6 +64,7 @@ static int __attribute__ ((__noreturn__)) usage(int opt)
fputs(_(" -c, --check-root omit processes with different root\n"), fp);
fputs(_(" -x also find shells running the named scripts\n"), fp);
fputs(_(" -o, --omit-pid <PID,...> omit processes with PID\n"), fp);
fputs(_(" -S, --separator SEP use SEP as separator put between PIDs"), fp);
fputs(USAGE_SEPARATOR, fp);
fputs(USAGE_HELP, fp);
fputs(USAGE_VERSION, fp);
@ -287,12 +288,14 @@ int main (int argc, char **argv)
int found = 0;
int first_pid = 1;
const char *opts = "scnxmo:?Vh";
const char *separator = " ";
const char *opts = "scnxmo:S:?Vh";
static const struct option longopts[] = {
{"check-root", no_argument, NULL, 'c'},
{"single-shot", no_argument, NULL, 's'},
{"omit-pid", required_argument, NULL, 'o'},
{"separator", required_argument, NULL, 's'},
{"help", no_argument, NULL, 'h'},
{"version", no_argument, NULL, 'V'},
{NULL, 0, NULL, 0}
@ -324,6 +327,9 @@ int main (int argc, char **argv)
pidof_root = pid_link(getpid(), "root");
}
break;
case 'S':
separator = optarg;
break;
case 'V':
printf (PROCPS_NG_VERSION);
exit (EXIT_SUCCESS);
@ -357,7 +363,7 @@ int main (int argc, char **argv)
first_pid = 0;
printf ("%ld", (long) procs[i].pid);
} else {
printf (" %ld", (long) procs[i].pid);
printf ("%s%ld", separator, (long) procs[i].pid);
}
if (opt_single_shot) break;
}