linux - 在 linux 中杀死一个进程实际上并不会杀死它

标签 linux

<分区>

我正在尝试使用 kill -9 PID 杀死在我的服务器中运行的数据库,在杀死它之后,如果我看到进程正在运行,数据库仍在使用另一个 PID 运行,我该如何真正杀死它

最佳答案

特别是对于数据库守护进程,你应该永远不要kill -9 a.k.a. kill -KILL 杀死它,因为当你杀死它时使用 SIGKILL 时,底层数据文件将处于不一致状态(因此如果运气不好,您可能会丢失所有数据库!)。要终止这样的进程,您确实应该使用 kill -TERMkill -QUIT 因为数据库代码很可能会适本地处理这些信号(通过将数据文件保留在一致的状态)。请记住 SIGKILL signal(7)不能被捕获。显然,该守护进程由启动它的系统脚本重新启动(或由一些 systemd 或其他 init )。

我们不知道您在谈论什么 DBMS 以及您使用的是什么 Linux 发行版,但很可能您的系统有一些命令可以正确停止 DBMS,例如/etc/rc.d/mysql stopmysqladmin shutdownpg_ctl stop或其他。

关于linux - 在 linux 中杀死一个进程实际上并不会杀死它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29002686/

相关文章:

linux - 总线错误打开和映射文件

linux - 无法执行二进制文件错误

regex - 授予 sudo 权限以记录不同路径上的文件,如/a/b1/c.log 和/a/b2/d.log 等文件

php - 在 web 目录外访问 PHP Browscap FastCGI

c++ - g++ 如何找到标准库

regex - 需要正则表达式从 Unix id 命令中提取组

linux - nfs 文件共享未挂载

phpMyadmin 错误 2002 LEMP 堆栈

linux - alloc_pages() 与 __free_pages() 配对

python - 如何减去文件中的两个单独的列