Ask HN: one-liner 'Kill Process by Name' – Bash Scriptable

1 points by News-Dog ↗ HN
I play (an old) 'Mines' game from 'SGT Puzzle Launcher' (https://launchpad.net/sgt-launcher)

Often on exit it fails to exit all process, I have written a bash cleanup script which I launch from a launcher in my panel, I add;

kill -15 $(ps -ef |grep sgt-mines |head -n1 |awk '{print $2}')

kill -15 $(ps -ef |grep sgt-launcher |head -n1 |awk '{print $2}')

to my cleanup script, which also cleans up firefox, I added;

kill -15 $(ps -ef |grep firefox |head -n1 |awk '{print $2}')

Which terminates the main firefox process, and all spawned child procs.

If the process is not running, it echoes; 'bash: kill: (pid) - No such process' because the parsed 'pid' is for the just exited grep.

Is there a better way?

4 comments

[ 3.5 ms ] story [ 30.1 ms ] thread
Alternatively:

    ps aux | grep processname | awk '{print $2}' | xargs kill
but pkill is the better option.