# phpman > man > pkill(1)

> **TLDR:** Signal process by name.
>
- Kill all processes which match:
  `pkill "{{process_name}}"`
- Kill all processes which match their full command instead of just the process name:
  `pkill {{-f|--full}} "{{command_name}}"`
- Force kill matching processes (can't be blocked):
  `pkill -9 "{{process_name}}"`
- Send SIGUSR1 signal to processes which match:
  `pkill -USR1 "{{process_name}}"`
- Kill the main `firefox` process to close the browser:
  `pkill {{-o|--oldest}} "{{firefox}}"`

*Source: tldr-pages*

---

[PGREP(1)](https://www.chedong.com/phpMan.php/man/PGREP/1/markdown)                                    User Commands                                   [PGREP(1)](https://www.chedong.com/phpMan.php/man/PGREP/1/markdown)



## NAME
       pgrep,  pkill,  pidwait  - look up, signal, or wait for processes based on name and other at‐
       tributes

## SYNOPSIS
       **pgrep** [options] pattern
       **pkill** [options] pattern
       **pidwait** [options] pattern

## DESCRIPTION
       **pgrep** looks through the currently running processes and lists the process IDs which match the
       selection criteria to stdout.  All the criteria have to match.  For example,

              $ pgrep -u root sshd

       will only list the processes called **sshd** AND owned by **root**.  On the other hand,

              $ pgrep -u root,daemon

       will list the processes owned by **root** OR **daemon**.

       **pkill**  will send the specified signal (by default **SIGTERM**) to each process instead of listing
       them on stdout.

       **pidwait** will wait for each process instead of listing them on stdout.

## OPTIONS
       **-**_signal_
       **--signal** _signal_
              Defines the signal to send to each matched process.  Either the numeric  or  the  sym‐
              bolic signal name can be used.  (**pkill** only.)

### -c --count
              Suppress  normal output; instead print a count of matching processes.  When count does
              not match anything, e.g. returns zero, the command will return  non-zero  value.  Note
              that  for  pkill  and  pidwait, the count is the number of matching processes, not the
              processes that were successfully signaled or waited for.

### -d --delimiter
              Sets the string used to delimit each process ID in the output (by default a  newline).
              (**pgrep** only.)

### -e --echo
              Display name and PID of the process being killed.  (**pkill** only.)

### -f --full
              The  _pattern_  is  normally only matched against the process name.  When **-f** is set, the
              full command line is used.

### -g --pgroup
              Only match processes in the process group IDs listed.  Process group 0  is  translated
              into **pgrep**'s, **pkill**'s, or **pidwait**'s own process group.

### -G --group
              Only  match processes whose real group ID is listed.  Either the numerical or symboli‐
              cal value may be used.

### -i --ignore-case
              Match processes case-insensitively.

### -l --list-name
              List the process name as well as the process ID.  (**pgrep** only.)

### -a --list-full
              List the full command line as well as the process ID.  (**pgrep** only.)

### -n --newest
              Select only the newest (most recently started) of the matching processes.

### -o --oldest
              Select only the oldest (least recently started) of the matching processes.

### -O --older
              Select processes older than secs.

### -P --parent
              Only match processes whose parent process ID is listed.

### -s --session
              Only match processes whose process session ID is listed.  Session ID 0  is  translated
              into **pgrep**'s, **pkill**'s, or **pidwait**'s own session ID.

### -t --terminal
              Only  match  processes whose controlling terminal is listed.  The terminal name should
              be specified without the "/dev/" prefix.

### -u --euid
              Only match processes whose effective user ID is listed.  Either the numerical or  sym‐
              bolical value may be used.

### -U --uid
              Only match processes whose real user ID is listed.  Either the numerical or symbolical
              value may be used.

### -v --inverse
              Negates the matching.  This option is usually used in **pgrep**'s  or  **pidwait**'s  context.
              In  **pkill**'s  context the short option is disabled to avoid accidental usage of the op‐
              tion.

### -w --lightweight
              Shows all thread ids instead of pids in **pgrep**'s or **pidwait**'s context.  In **pkill**'s con‐
              text this option is disabled.

### -x --exact
              Only  match  processes whose names (or command lines if **-f** is specified) **exactly** match
              the _pattern_.

### -F --pidfile
              Read _PID_s from _file_.  This option is more useful for **pkill**or**pidwait** than **pgrep**.

### -L --logpidfile
              Fail if pidfile (see **-F**) not locked.

### -r --runstates
              Match only processes which match the process state.

       **--ns** _pid_
              Match processes that belong to the same namespaces. Required to run as root  to  match
              processes from other users. See **--nslist** for how to limit which namespaces to match.

       **--nslist** _name_**,...**
              Match  only  the  provided  namespaces.  Available  namespaces:  ipc,  mnt,  net, pid,
              user,uts.

### -q --queue
              Use [**sigqueue(3)](https://www.chedong.com/phpMan.php/man/sigqueue/3/markdown)** rather than [**kill(2)](https://www.chedong.com/phpMan.php/man/kill/2/markdown)** and the value argument is used to specify an inte‐
              ger  to  be sent with the signal. If the receiving process has installed a handler for
              this signal using the SA_SIGINFO flag to [**sigaction(2)](https://www.chedong.com/phpMan.php/man/sigaction/2/markdown)** , then it can obtain  this  data
              via the si_value field of the siginfo_t structure.

### -V --version
              Display version information and exit.

### -h --help
              Display help and exit.

## OPERANDS
       _pattern_
              Specifies  an  Extended  Regular  Expression for matching against the process names or
              command lines.

## EXAMPLES
       Example 1: Find the process ID of the **named** daemon:

              $ pgrep -u root named

       Example 2: Make **syslog** reread its configuration file:

              $ pkill -HUP syslogd

       Example 3: Give detailed information on all **xterm** processes:

              $ ps -fp $(pgrep -d, -x xterm)

       Example 4: Make all **chrome** processes run nicer:

              $ renice +4 $(pgrep chrome)

## EXIT STATUS
       0      One or more processes matched the criteria. For pkill and pidwait, one  or  more  pro‐
              cesses must also have been successfully signalled or waited for.
       1      No processes matched or none of them could be signalled.
       2      Syntax error in the command line.
       3      Fatal error: out of memory etc.

## NOTES
       The  process  name used for matching is limited to the 15 characters present in the output of
       /proc/_pid_/stat.  Use the **-f** option to match against the complete command line, /proc/_pid_/cmd‐
       line.

       The running **pgrep**, **pkill**, or **pidwait** process will never report itself as a match.

## BUGS
       The options **-n** and **-o** and **-v** can not be combined.  Let me know if you need to do this.

       Defunct processes are reported.


## SEE ALSO
       [**ps**(1)](https://www.chedong.com/phpMan.php/man/ps/1/markdown), [**regex**(7)](https://www.chedong.com/phpMan.php/man/regex/7/markdown), [**signal**(7)](https://www.chedong.com/phpMan.php/man/signal/7/markdown), [**sigqueue**(3)](https://www.chedong.com/phpMan.php/man/sigqueue/3/markdown), [**killall**(1)](https://www.chedong.com/phpMan.php/man/killall/1/markdown), [**skill**(1)](https://www.chedong.com/phpMan.php/man/skill/1/markdown), [**kill**(1)](https://www.chedong.com/phpMan.php/man/kill/1/markdown), [**kill**(2)](https://www.chedong.com/phpMan.php/man/kill/2/markdown)

## AUTHOR
       Kjetil Torgrim Homme ⟨<kjetilho@ifi.uio.no>⟩

## REPORTING BUGS
       Please send bug reports to ⟨<procps@freelists.org>⟩



procps-ng                                    2020-06-04                                     [PGREP(1)](https://www.chedong.com/phpMan.php/man/PGREP/1/markdown)
