tags:

views:

231

answers:

5

I have process id in a file "pid" I'd like to kill it.

Something like:

kill -9 <read pid from file>

I tried:

kill -9 `more pid`

but it does not work. I also tried xargs but can't get my head around it.

+6  A: 

Does

kill -9 $(cat pid)

work for you?

sdtom
+1. I prefer the $() method over backticks, since you can nest them.
paxdiablo
+2  A: 

my preference is

kill -9 `cat pid`

that will work for any command in the backticks.

BCS
+1  A: 

kill -9 $(cat pid) or cat pid | xargs kill -9 will both work

Chris AtLee
+2  A: 

G'day,

You should be starting off gradually and then move up to the heavy stuff to kill the process if it doesn't want to play nicely.

A SIGKILL (-9) signal can't be caught and that will mean that any resources being held by the process won't be cleaned up.

Try using a kill SIGTERM (-15) first and then check for the presence of the process still by doing a kill -0 $(cat pid). If it is still hanging around, then by all means clobber it with -9.

SIGTERM can be caught by a process and any process that has been properly written should have a signal handler to catch the SIGTERM and then clean up its resources before exiting.

HTH

Rob Wells
A: 

Let me summarize all answers

kill -9 $(cat pid)
kill -9 `cat pid`
cat pid | xargs kill -9