首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >杀灭-9和生产应用

杀灭-9和生产应用
EN

Stack Overflow用户
提问于 2010-06-05 11:38:30
回答 4查看 469关注 0票数 6

哪个问题会导致生产应用程序中的kill -9 (确切地说是在linux中)?

我有一些申请,做一些定期工作,停止这些工作需要很长时间,我不在乎一些工作是否会被取消-工作可以通过新的程序完成。所以,我是否可以使用kill -9来立即停止它,或者这会导致严重的操作系统问题?

例如,独角兽将其用作正常工作过程:

当您的应用程序出错时,BOFH就可以“杀死-9”失控的工作进程,而不必担心会撕毁所有客户端,只有一个。

但是这个文章声称:

不应在Unix系统上使用-9 (或杀死)参数来杀死(1)。

PS:我知道kill -9不能被应用程序处理,但我知道对于可能的应用程序它不会引起任何问题,我只是想知道它会在操作系统级别引起一些问题吗?shared memory segments active, lingering sockets听起来很危险。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-05 22:34:08

这取决于它是什么样的应用程序。

像数据库这样的东西可能会丢失数据(如果它不立即将所有数据写入持久事务日志),或者下次启动需要更长的时间,或者两者都会丢失。

虽然只撞车是一个很好的原则,但目前很少有应用程序遵守它。

例如,mysql数据库并不是“仅崩溃”,使用杀死-9会导致启动时间大大延长(而不是完全关闭)、数据丢失,或者两者兼而有之,这取决于设置(在某种程度上,运气)。

另一方面,卡桑德拉实际上鼓励使用杀害-9作为关闭机制;它不支持其他任何东西。

票数 1
EN

Stack Overflow用户

发布于 2010-06-05 11:42:19

kill -9没有给应用程序一个干净关闭的机会。

通常,应用程序可以捕获SIGINT/SIGTERM并干净地关闭(关闭文件、保存数据等)。应用程序无法捕获SIGKILL (与kill -9一起发生),因此它无法执行任何(可选的)清理。

更好的方法是使用标准的kill,如果应用程序仍然没有响应,那么使用kill -9

票数 4
EN

Stack Overflow用户

发布于 2010-06-05 11:43:55

kill -9不会造成任何“严重的操作系统问题”。但这一过程将立即停止,这意味着它可能会使数据处于一种奇怪的状态。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2980162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档