How can I kill a process by name instead of PID?


Question

Sometimes when I try to start Firefox it says "a Firefox process is already running". So I have to do this:

jeremy@jeremy-desktop:~$ ps aux | grep firefox
jeremy    7451 25.0 27.4 170536 65680 ?        Sl   22:39   1:18 /usr/lib/firefox-3.0.1/firefox
jeremy    7578  0.0  0.3   3004   768 pts/0    S+   22:44   0:00 grep firefox
jeremy@jeremy-desktop:~$ kill 7451

What I'd like is a command that would do all that for me. It would take an input string and grep for it (or whatever) in the list of processes, and would kill all the processes in the output:

jeremy@jeremy-desktop:~$ killbyname firefox

I tried doing it in PHP but exec('ps aux') seems to only show processes that have been executed with exec() in the PHP script itself (so the only process it shows is itself.)

1
311
3/7/2019 5:09:29 AM

Accepted Answer

463
6/27/2014 5:08:48 PM

Also possible to use:

pkill -f "Process name".

For me, it worked up perfectly. It was what I have been looking for. pkill doesn't work with name without the flag.

When -f is set, the full command line is used for pattern matching.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon