我有一个文件"pid"中记录了进程id,我想要杀死它。
类似以下操作:
类似以下操作:
kill -9 <read pid from file>
我尝试了:
kill -9 `more pid`
但它没有起作用。我也尝试了 xargs
但是无法理解它。
kill -9 $(cat pid)
适合您吗?
让我总结所有答案
kill -9 $(cat pid)
kill -9 `cat pid`
cat pid | xargs kill -9
我的偏好是
。kill -9 `cat pid`
这对反引号中的任何命令都有效。
kill -9 $(cat pid)
或者 cat pid | xargs kill -9
都可以起作用。
你应该逐步开始,然后转向重要的内容以结束进程,如果它不想合作。
SIGKILL(-9)信号不能被捕获,这意味着该进程持有的任何资源都不会被清理。
首先尝试使用kill SIGTERM(-15),然后通过执行kill -0 $(cat pid)检查进程是否仍存在。如果它仍在运行,则可以使用-9强制结束。
SIGTERM可以被进程捕获,任何已经正确编写的进程都应该有一个信号处理程序来捕获SIGTERM并在退出之前清理其资源。
kill -s TERM
而不是 kill -15
。 - jpaugh
more
部分导致了问题,因为more
可能需要用户输入。 - BCS