我试图使用kill -9 PID杀死在我的服务器上运行的数据库,杀死之后如果我看到进程正在运行,数据库仍在运行另一个PID,我怎么能真正杀死它
答案 0 :(得分:2)
特别是对于数据库守护程序,你应该从不使用kill -9
又名kill -KILL
来杀死它,因为当你用SIGKILL
基础数据文件杀死它时会处于不一致的状态(运气不好,你可能会丢失所有的数据库!)。要杀死这样一个进程,你真的应该使用kill -TERM
或kill -QUIT
因为数据库代码很可能适当地处理这些信号(通过使数据文件保持一致状态)。请注意,无法捕获SIGKILL
signal(7)。显然,该守护进程由启动它的系统脚本(或某些systemd或其他init)重新启动。
我们不知道您正在谈论的DBMS以及您拥有的Linux发行版,但很可能您的系统有一些命令可以正确停止DBMS,例如: /etc/rc.d/mysql stop
或mysqladmin shutdown或pg_ctl stop或其他。