【发布时间】:2010-12-15 06:29:22
【问题描述】:
我在文件“pid”中有进程 ID 我想杀了它。
类似:
kill -9 <read pid from file>
我试过了:
kill -9 `more pid`
但它不起作用。我也尝试过xargs,但无法理解。
【问题讨论】:
-
我认为是
more位正在扼杀它 b/cmore可能正在等待用户输入。
我在文件“pid”中有进程 ID 我想杀了它。
类似:
kill -9 <read pid from file>
我试过了:
kill -9 `more pid`
但它不起作用。我也尝试过xargs,但无法理解。
【问题讨论】:
more 位正在扼杀它 b/c more 可能正在等待用户输入。
有
kill -9 $(cat pid)
为你工作?
【讨论】:
我的偏好是
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。
让我总结一下所有的答案
kill -9 $(cat pid)
kill -9 `cat pid`
cat pid | xargs kill -9
【讨论】: