search for and kill a process in one blow

ps aux|grep -i [p]rocessname|awk '{ print $2 }'|xargs kill

2010-04-10 18:42:27

What Others Think

pkill is better for that.
unixmonkey9257 · 534 weeks and 6 days ago
Better? You mean shorter? Care to share examples and explain? Seems like the thing to do if you are going to vote it down and all.
billcarroll · 534 weeks and 6 days ago
I just use killall <procname>
kaedenn · 534 weeks and 6 days ago
FYI ... There are issues using killall with names over 15 characters, and "Killing by file name only works for executables (i.e., runnable programs) that are kept open during execution. Also, killall may not have the desired effect in some situations, including on some non-Linux systems, in which case kill provides a viable alternative. -
billcarroll · 534 weeks and 6 days ago
That would be nice to have as an alias, does anyone know how to do that?
kodiak68 · 534 weeks and 6 days ago
The first comment is right, I also use pkill for this. It's very simple to use, for example: pkill ssh-agent Also it is fairly portable, at least it also exists on BSD and Solaris, while ps syntax isn't really portable. By the way, there's a companion tool called pgrep that just lists the PID numbers. Another alternative would be the "killall" tool, but its syntax and behaviour differs slightly between operating systems which is somewhat dangerous. Therefore I prefer pkill.
inof · 534 weeks and 5 days ago
pkill is not portable, and neither is pgrep. I'm working on OSX and neither exists on a Mac. I can't think of a nix where ps doesn't do the job this command requires. If you can I'd love to hear about it. While different vendors customize ps, it's always present and returning PIDs.
billcarroll · 534 weeks and 5 days ago
Despite all of the voting down, nobody has managed to post a better or more portable command to "search for and kill a process in one blow". pkill does not do it on all platforms and killall does not kill processes, only running applications.
billcarroll · 534 weeks and 5 days ago
You think ps is portable? ps is the prime example for commands that are not portable. It's syntax is complete different between SysV and BSD-derived systems, and Linux has taken a bit from everywhere, which is even more confusing. Try entering "ps wwaux" on a Solaris machine. It will respond with a usage error. (By the way, the third "w" is superfluous.) pkill is definietly more portable than ps, at least it works the same way on Linux, Solaris and BSD systems. Even AIX and HP-UX have it in their current versions. I'm surprised that Mac OS X doesn't have it, as it's partly BSD-derived, but well, that's probably bad luck then.
inof · 534 weeks and 5 days ago
You are incorrect on all three counts: 1. ps wwwaux will run on Solaris, and if you preface with sudo it will return more than the 80 char limit. 2. pkill is not more portable, it is less portable. ps is on every nix distribution, pkill is not. 3. the 3rd 'w' is not superfluous.
billcarroll · 534 weeks and 5 days ago
For kodiak68, here is one way you can create an alias for the command:
billcarroll · 534 weeks and 5 days ago
I'm afraid it's you who is wrong. 1. If "ps wwwaux"works for you on Solaris, then you have /usr/ucb before /bin or /usr/bin in your $PATH, which is generally not recommended because of subtle side effects. All of this is explained in the ps(1) manual page on Solaris, so I suggest you read it. 2. A command is not portable just because it's present. For portability the usage of a tool is also important. Therefore ps is not very portable. As I said, ps is the prime example of portability problems between BSD and SysV systems. 3. The third "w" is superfluous. See the manual page. The first "w" changes the output width to 132 characters (the default is 80). The second one removes all output width limitations. The third "w" doesn't change anything. If your ps behaves differently, then that's just another proof for the portability problems of ps.
inof · 534 weeks and 4 days ago
So, let me see if I hear you correctly. PS is on Solaris? Nice. Next, lets establish that you can't find a *nix distribution where ps does not return a PID in second position. Nice again. Third, let's establish that pkill is not on a number of *nixes. Again, you have done nothing but prove my points ... well, that and be acerbically unhelpful. Thanks :)
billcarroll · 534 weeks and 4 days ago
inof ... to give credit where credit is due, I did discover how I got into the habit of using 'ps auxwww'. I picked it up from a friend who explains his use of it as: "on old solaris/vax etc systems 'www' made it 'really wide' ;-) i don't now if this is true anymore, but - habbit." I notice that there are quite a few people still using a 3rd 'w' but I'll be damned if I can find a place listing it as necessary. I'm guessing there is a reason out there somewhere. Also, in the context of the command I posted, using 'w' at all does not appear to be necessary. I'm going to change the command and remove 'www'. So, thanks.
billcarroll · 534 weeks and 4 days ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

What's this? is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands

Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.


Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: