我在Ubuntu18.04上安装了mysql。我试图用kill -9
杀死mysql进程,但它立即回来了。下面是我的终端输出的例子:
root@mysql-image:~# ps aux | grep mysql
mysql 779 0.8 19.2 1166336 188064 ? Sl 20:06 0:02 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
root 1046 0.0 0.1 13144 1060 pts/0 S+ 20:11 0:00 grep --color=auto mysql
root@mysql-image:~# kill -9 779
root@mysql-image:~# ps aux | grep mysql
mysql 1063 21.5 18.1 1165936 177556 ? Sl 20:11 0:00 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
root 1094 0.0 0.1 13144 1032 pts/0 S+ 20:11 0:00 grep --color=auto mysql
root@mysql-image:~# kill -9 1063
root@mysql-image:~# ps aux | grep mysql
mysql 1142 21.5 18.1 1165936 177628 ? Sl 20:12 0:00 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
root 1173 0.0 0.1 13144 1084 pts/0 S+ 20:12 0:00 grep --color=auto mysql
我试图以一种突然的方式和"不安全的方式"破坏mysql进程。作为我实验的一部分但是kill -9
似乎不能永久关闭mysql数据库。
我做错了什么?
通常情况下,systemd将被配置为在意外终止时重新启动mysql,Restart=on-abort
位于/usr/lib/systemd/system/mysql.service.
on-abort的解释见:https://unix.stackexchange.com/questions/564443/what-does-restart-on-abort-mean-in-a-systemd-service
你可以尝试更改mysql配置文件,以防止它重新启动(设置一个不存在的用户,也许?)或者你可以直接做akill -15
,它被视为预期终止,因此不会导致重新启动。