Igor Katkov
Igor Katkov

Reputation: 6380

linux shell: How to read command argument from a file?

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.

Upvotes: 7

Views: 7223

Answers (5)

Rob Wells
Rob Wells

Reputation: 37103

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.

Upvotes: 2

Igor Katkov
Igor Katkov

Reputation: 6380

Let me summarize all answers

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

Upvotes: 12

Chris AtLee
Chris AtLee

Reputation: 8066

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

Upvotes: 2

BCS
BCS

Reputation: 78516

my preference is

kill -9 `cat pid`

that will work for any command in the backticks.

Upvotes: 3

sdtom
sdtom

Reputation: 897

Does

kill -9 $(cat pid)

work for you?

Upvotes: 13

Related Questions