-
24-10-2019 - |
题
哪个问题可能导致 kill -9
在生产应用中(准确地说是Linux)?
我的应用程序可以进行一些定期工作,停止这些工作需要很长时间,而且我不在乎某些工作是否会流产 - 可以通过新的过程完成工作。所以我可以使用 kill -9
只是立即停止它,还是可能引起严重的操作系统问题?
例如, 独角兽, ,将其用作正常工作程序:
当您的应用程序出现问题时,BOFH可以“杀死-9”失控的工艺过程,而不必担心所有客户都会拆除。
但是这个 文章 主张:
杀死的-9(或杀死)论点(1)绝不应在UNIX系统上使用
PS:我知道 kill -9
无法通过应用程序来处理,但是我知道,对于可能的应用不会引起任何问题,我只是很感兴趣,它会在OS级别上引起一些问题吗? shared memory segments active, lingering sockets
听起来对我来说很危险。
其他提示
kill -9
没有给申请干净地关闭的机会。
通常一个应用程序可以抓住 SIGINT/SIGTERM
并干净地关闭(关闭文件,保存数据等)。应用程序无法捕获 SIGKILL
(发生在 kill -9
)因此,它不能进行任何(可选)清理。
更好的方法是使用标准 kill
, ,如果应用程序不响应,请使用 kill -9
.
kill -9
不会引起任何“严重的操作系统问题”。但是该过程将立即停止,这意味着它可能会使数据处于奇数状态。
杀戮信号不能被应用程序捕获。如果该应用程序在杀死时将某些复杂的数据结构编写为磁盘,则该结构可能只编写一半,从而导致损坏的数据文件。通常最好实现其他一些信号,例如用户1作为“停止”信号,因为可以捕获并允许应用程序以受控的方式关闭应用程序。
不隶属于 StackOverflow