PGREP(1)                         proctools 0.4                        PGREP(1)

NAME
     pgrep - find processes

SYNOPSIS
     pgrep [-filLnvVx] [-d delim] [-g pgrplist] [-G gidlist] [-P ppidlist] [-t
           termlist] [-u euidlist] [-U uidlist] [pattern]

DESCRIPTION
     The pgrep utility displays process IDs for those processes that match the
     requirements specified on the command line.  The process IDs are present-
     ed as decimal numbers separated by an optionally supplied delimiter,
     which defaults to a newline.  The output can optionally include the exe-
     cutable name printed after the process ID, separated by a space.

     Processes are matched if the pattern, if given, matches the process's
     name, and the process matches any of the arguments given to all of the
     rest of the flags supplied on the command line.  The arguments supplied
     to pgrep can be given as a comma and/or whitespace delimited list.

     The options are as follows:

     -d delim
             Use the specified delimiter to separate the process IDs instead
             of a newline.

     -f      Match the pattern anywhere in the full argument string of the
             process instead of just the executable name.

     -g pgrplist
             Match only processes that exist within the process groups speci-
             fied.

     -G gidlist
             Match only processes whose real group ID is listed.  Group IDs
             can be specified as group names and numeric IDs.  Non-existent
             numeric IDs do not cause errors.

     -i      Use case-insensitive pattern matching.

     -l      Print the executable name of the process along with the process
             ID.

     -L      Print the full argument string of the process along with the pro-
             cess ID.

     -n      Print only the latest process that matches the rest of the argu-
             ments.  That is, the process that has the most recent start time.

     -P ppidlist
             Match only processes whose parent process ID is specified.

     -t termlist
             Match only processes whose controlling terminal is specified.
             Terminals can be specified as children of the /dev directory or,
             if starting with a leading slash (`/'), any currently mounted
             filename.  Filenames specified must be character devices.

     -u euidlist
             Match only processes whose effective user ID is given.  User IDs
             can be specified as usernames and as numeric user IDs.

     -U uidlist
             Match only processes whose real user ID is given.  User IDs can

             be specified as usernames and as numeric user IDs.

     -v      Invert the matching algorithm. Will print information about pro-
             cesses that do not match the given arguments.  As an exception,
             combining the -n option with the -v option will not invert the
             pattern match (only flags will be inverted).

     -V      Prints the pgrep version, then quits.

     -x      Treat the pattern as a literal string for exact (full-string)
             matching. Without this option, the default is to match as an ex-
             tended regular expression.  N.b. the Solaris pgrep performs regu-
             lar expression matching in the presence of the -x option. This
             behaviour is considered redundant in this pgrep implementation.
             The same effect may be achieved by avoiding the -x option and in-
             stead using a pattern of the form ^(pattern)$.

EXAMPLES
     pgrep sendmail

     Prints the process IDs of all sendmail processes.

     pgrep -G daemon -v

     Prints the process IDs of all processes whose group ID is not daemon.

     pgrep -d, -u root sh

     Prints the process IDs of all shells whose effective user ID is root,
     separated by commas.

RETURN VALUES
     The pgrep utility exits with one of the following values:

     0 (EX_OK)
             One or more processes were matched.

     1       No processes were matched.

     64 (EX_USAGE)
             Invalid command-line options were specified.

     69 (EX_UNAVAILABLE)
             An unexpected error occurred.

     70 (EX_SOFTWARE)
             A feature was not supported in the current environment.

     71 (EX_OSERR)
             A transient error occurred.

NOTES
     The current pgrep process will not consider itself to be a potential
     match. However, it is possible for a user to construct a shell pipeline
     that contains processes that will be matched by the pattern supplied to
     this tool. Some users might not anticipate this.

     The output of this tool should never be treated as accurate programmatic
     input (process arguments will have been escaped for safe printing on the
     terminal).

BUGS
     The original Solaris pgrep could also match against session ID, but
     OpenBSD's session ID can fail to exist if the session leader exits.

     Also, the original Solaris version had only the deprecated -signal option
     to specify what signal to send.  This version can also use the -s signal
     option, which subsumes the session ID match listed above.

     Output with the -L option may vary between operating systems.

     For the sysctl mode of operation (e.g. Darwin) the -L option will list
     process belonging to other users but will be unable to display details of
     their arguments. A question mark and executable name (but not the argu-
     ment string) will be displayed.  (The Darwin ps can show arguments be-
     cause it is setuid root.)

SEE ALSO
     pkill(1), ps(1), regex(3)

HISTORY
     The original pgrep command appeared in Sun Solaris 7.

AUTHORS
     Feedback may be sent to <wfaulk/users.sourceforge.net> and <j-de-
     venish/users.sourceforge.net>.  The project homepage is at <http://proc-
     tools.sourceforge.net>.

                               06 December 2003                              3