Kill a list of processes


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Kill a list of processes
# 1  
Old 10-04-2014
Kill a list of processes

I am trying to kill a list of processes. I have found these two ways to list a group of process id's on a single line. How would I go about killing all of these processes all on one line?

Code:
$ ps aux | grep 6243 | grep "a.out" | awk '{printf "%s ",$2}'

Code:
ps aux | grep 6243 | grep "a.out" | awk '{print $2}' ORS=' '

Code:
7543 7553 7558 7561 7569 7574


Last edited by cokedude; 10-05-2014 at 01:28 AM..
# 2  
Old 10-04-2014
Huh? You don't have a list of PIDs; you have one PID listed 5 times.
Since all you seem to be interested in is PID 6243, why not just use:
Code:
kill 6243

???
# 3  
Old 10-05-2014
Quote:
Originally Posted by Don Cragun
Huh? You don't have a list of PIDs; you have one PID listed 5 times.
Since all you seem to be interested in is PID 6243, why not just use:
Code:
kill 6243

???
I fixed my mistake. I was doing a lot of copying and pasting. $1 was supposed to be $2. 6243 was the uid I was using to filter the user I wanted.

Mistake
Code:
$ ps aux | grep 6243 | grep "a.out" | awk '{printf "%s ",$1}'

Corrected
Code:
$ ps aux | grep 6243 | grep "a.out" | awk '{printf "%s ",$2}'

# 4  
Old 10-05-2014
Quote:
Originally Posted by cokedude
I fixed my mistake. I was doing a lot of copying and pasting. $1 was supposed to be $2. 6243 was the uid I was using to filter the user I wanted.

Mistake
Code:
$ ps aux | grep 6243 | grep "a.out" | awk '{printf "%s ",$1}'

Corrected
Code:
$ ps aux | grep 6243 | grep "a.out" | awk '{printf "%s ",$2}'

So, if:
Code:
$ ps aux | grep 6243 | grep "a.out" | awk '{printf "%s ",$2}'

gives you the list of PIDs you want to kill, it is a pretty small step from there to:
Code:
$ kill $(ps aux | grep 6243 | grep "a.out" | awk '{printf "%s ",$2}')

isn't it?
# 5  
Old 10-05-2014
Quote:
Originally Posted by cokedude
[...] 6243 was the uid I was using to filter the user I wanted.
As a way of information `ps' has some more options that might allow you to tailor more custom output that just `ps aux'.

For example if you want to kill any processes containing "a.out" for the user 6243:
Code:
kill $(ps -U 6243 | awk '$5 ~ /a\.out/ {print $1}')

As a "rule of thumb" anything that grep can do, awk can also achieve. So if you use awk, you most likely do not have to bother with another filter like grep.

There's also a very useful unix utility named `lsof' that can be handy when dealing with processes. If your system has it installed it is worthwhile to get familiar with it.
If you want to kill only the processes number of the program top that user 6243 has initiated.

Code:
kill $(lsof -t -u 6243 -a -c top)

-t: will output only the pid
-u: user id or name
-a: ANDing operator
-c: command

Last edited by Aia; 10-05-2014 at 02:57 AM.. Reason: Adding meaning of flags
# 6  
Old 10-05-2014
Quote:
Originally Posted by Don Cragun
So, if:
Code:
$ ps aux | grep 6243 | grep "a.out" | awk '{printf "%s ",$2}'

gives you the list of PIDs you want to kill, it is a pretty small step from there to:
Code:
$ kill $(ps aux | grep 6243 | grep "a.out" | awk '{printf "%s ",$2}')

isn't it?
Yep thats it Smilie. Thank you. I wasn't familiar with that $() trick. Where can I read more about things like that?

---------- Post updated at 02:30 AM ---------- Previous update was at 02:08 AM ----------

Quote:
Originally Posted by Aia
As a way of information `ps' has some more options that might allow you to tailor more custom output that just `ps aux'.

For example if you want to kill any processes containing "a.out" for the user 6243:
Code:
kill $(ps -U 6243 | awk '$5 ~ /a\.out/ {print $1}')

As a "rule of thumb" anything that grep can do, awk can also achieve. So if you use awk, you most likely do not have to bother with another filter like grep.

There's also a very useful unix utility named `lsof' that can be handy when dealing with processes. If your system has it installed it is worthwhile to get familiar with it.
If you want to kill only the processes number of the program top that user 6243 has initiated.

Code:
kill $(lsof -t -u 6243 -a -c top)

-t: will output only the pid
-u: user id or name
-a: ANDing operator
-c: command
This worked when I changed it.

Code:
kill $(ps -U 6243 | awk '$4 ~ /a\.out/ {print $1}')

ps -U only has 4 columns.

Can you please explain this part? I don't understand the purpose of a "~" here and why you had to the a.out in "//" . Would bash try to expand the "." if you didn't "\" it?

Code:
~ /a\.out/

The system I am using is old and unfortunately doesn't have lsof.
# 7  
Old 10-05-2014
Quote:
Originally Posted by cokedude
Yep thats it Smilie. Thank you. I wasn't familiar with that $() trick. Where can I read more about things like that?
man bash (or whatever your shell be) is your friend:

Quote:
Command Substitution
Command substitution allows the output of a command to replace the command name. There are two forms:

$(command)
or
`command`
Quote:
Originally Posted by cokedude
. . .
Can you please explain this part? I don't understand the purpose of a "~" here and why you had to the a.out in "//" . Would bash try to expand the "." if you didn't "\" it?
. . .
man awk is your friend:
Quote:
5. Expressions and operators
The expression syntax is similar to C. . . .

New expressions are composed with the following operators in order of increasing precedence.

assignment = += -= *= /= %= ^=
.
.
.
matching ~ !~
.
.
.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

kill multiple processes by name

Want to kill multiple processes by name. for the example below, I want to kill all 'proxy-stagerd_copy' processes. I tried this but didn't work: >> ps -ef|grep proxy_copy root 991 986 0 14:45:34 ? 0:04 proxy-stagerd root 1003 991 0 14:45:49 ? 0:01... (2 Replies)
Discussion started by: catalinawinemxr
2 Replies

2. Shell Programming and Scripting

Kill processes

for i in 'ps -f | grep textedit' do kill $i done I wrote this but it wont work. I am trying to find processes and kill them. Any help would be welcome. (1 Reply)
Discussion started by: hawaiifiver
1 Replies

3. UNIX for Dummies Questions & Answers

Need help to kill parent and all of its sub processes

Hi, I am writing korn shell script. My requirement is, i have to kill the parent process and all of its child processes. Can some one please help me on this? Thanks in advance for your help.. (1 Reply)
Discussion started by: Sheethal
1 Replies

4. Solaris

kill the processes seen under ptree

Hi, How to kill the processes running under ptree ? I am noticing lot of processes running under ptree with ssh ? I tried to kill with -9 option which is not working ? Thanks, Radhika. (2 Replies)
Discussion started by: radhirk
2 Replies

5. HP-UX

Read/kill processes

Hi, I read a set of processes with: ps -eaf|grep oracleTRLV The result is: oracle 23253 1 0 15:14:11 ? 0:00 oracleTRLV (LOCAL=NO) oracle 23301 1 0 15:15:07 ? 0:00 oracleTRLV (LOCAL=NO) oracle 22914 1 0 15:11:19 ? 0:00 oracleTRLV (LOCAL=NO) How to I kill the "oracleTRLV" ones? Is there... (17 Replies)
Discussion started by: NicoMan
17 Replies

6. Solaris

kill processes

how to kill the processes of aperticular user? because i have nearly 25000 process are there for perticular user. i need to kill. Please provide the information? Regards, Rajesh (3 Replies)
Discussion started by: pmrajesh21
3 Replies

7. Solaris

how do I kill defunct processes?

mqm 17700 16815 0 0:00 <defunct> kill -9 does not work, even as root (10 Replies)
Discussion started by: csaunders
10 Replies

8. Shell Programming and Scripting

Unix Kill processes

Hi guys, I am new to Unix shell scripting. Can anyone of you tell me how to kill all the processes at a time for a particular user?(No listing the process ID of each process in the kill -9 command). Thanks in Advance, -Hary (5 Replies)
Discussion started by: tadi18
5 Replies

9. UNIX for Dummies Questions & Answers

Kill several processes at a time

Hello, ps -C a* returns the list of the process I need to kill. but ps -C a* -o pid | kill does not work and I can't get the syntax right. Thanks for any help (4 Replies)
Discussion started by: JCR
4 Replies

10. Shell Programming and Scripting

kill all processes

i have a very short file that has in it a line for a find command. now, when i run this script and I kill the script later, using the ps -ef | grep scriptname. i noticed kill -9 kills the script itself but does not kill the internal find command that it gave birth to. say theres a file... (0 Replies)
Discussion started by: Terrible
0 Replies
Login or Register to Ask a Question