CentOS 7下systemd是如何stop mysql服务的
【背景】
有同事在研究mongo的服务启动方式,讨论到mysql5.7的服务管理时一起做了下面测试。
MySQL5.7是用systemd来管理service的,它的配置文件/usr/lib/systemd/system/mysqld@.service中,只定义了ExecStart启动服务器的命令,
但没有定义ExecStop参数,就是停止mysqld服务时执行的命令。systemd究竟是如何stop mysql服务的。
【测试步骤】
1、执行关闭服务的命令
systemctl stop mysqld@replica02.service
2、使用systemtap脚本来抓取kill进程时的信号量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
global target; global signal; probe begin { printf( "%-6s %-12s %-5s %-6s %6s\n" , "FROM" , "COMMAND" , "SIG" , "TO" , "RESULT" ); } probe nd_syscall.kill { target[tid()] = uint_arg(1); signal[tid()] = uint_arg(2); } probe nd_syscall.kill. return { if (target[tid()] != 0) { printf( "%-6d %-12s %-5d %-6d %6d\n" , pid(), execname(), signal[tid()], target[tid()], int_arg(1)); delete target[tid()]; delete signal[tid()]; } } |
3、可以看到上面的mysqld进程127531被systemd进程kill掉了,先传15,再传18两个信号量
相当于执行了kill -15 127531,kill -18 127531两个命令
4、从文档中也找到了说明,
KillSignal参数可以指定停止进程时使用的信号,默认值为15 SIGTERM ,另外systemd会紧跟此信号再发送一个18 SIGCONT信号,以确保杀死已挂起的进程。
KillSignal=Specifies which signal to use when killing a service. This controls the signal that is sent as first step of shutting down a unit (see above), and is usually followed by SIGKILL (see above and below). For a list of valid signals, see signal(7). Defaults to SIGTERM.
Note that, right after sending the signal specified in this setting, systemd will always send SIGCONT, to ensure that even suspended tasks can be terminated cleanly.
CentOS 7下systemd是如何stop mysql服务的的更多相关文章
- CentOS 7 下 JDK1.8+Maven+Nginx+MySql+Git+Redis环境安装
CentOS 7 下 JDK1.8+Maven+Nginx+MySql+Git+Redis环境安装 安装目录准备 新建data目录,用来放下载的软件 mkdir -p /data 切换到该data目录 ...
- 在CentOS 7下编译安装Nginx+PHP+MySQL环境
本文转载自:http://www.softeng.cn/?p=156,本文已获得作者授权,未经作者同意,不可转载. 1.前言 本文适合于已经对Linux操作系统具有基本操作经验,并且能够在Linux或 ...
- linux CentOS 系统下如何将php和mysql命令加入到环境变量中
在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行“php -v”命令查看当前php版本信息时时, ...
- CentOS 7 下编译安装lnmp之MySQL篇详解
一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.MySQL下载 MySQL ...
- windows下配置启动多个mysql服务
查找配置做下记录 先安装mysql5.6,安装不在介绍 接下来配置启动另一个mysql服务, 1:先到服务里停止在运行的mysql服务 2:到mysql的安装目录下(默认安装目录在c:\Program ...
- 7_linux下PHP、Apache、Mysql服务的安装
1.首先安装之前,要确保你的虚拟机能连上外网. Mysql: 1.yum -y install mysql 连接数据库命令行模式 2.yum install mysql-server 安装mys ...
- Centos 7 下 Corosync + Pacemaker + psc 实现 httpd 服务高可用
一.介绍 高可用,大家可能会想到比较简单的Keepalived,或者更早一点的 heartbeat,也可能会用到 Corosync+Pacemaker,那么他们之间有什么区别. Heartbeat到了 ...
- CentOS.7下安装配置FTP和SFTP服务
一: FTP Centos7中默认已经安装了sshd服务(sftp), vsftpd需要手动安装 1.安装并启动FTP服务 1.1 安装vsftpd 使用 yum 安装 vsftpd yum inst ...
- CentOS 下使用yum 命令安装MySQL
CentOS Linux下使用yum 命令安装MySQL过程记录. 1. 查看服务器中有没有安装过MySQL 1. 查看有没有安装包: yum list mysql* #移除已经安装的mysql yu ...
随机推荐
- 【sping揭秘】21、Spring动态数据源的切换
对于多个数据源的时候,我们如何切换不同的数据源进行数据库的操作呢? 当然我们可以直接定义2个DataSource,然后在每次获取connection的时候,从不同的DataSource中获取conne ...
- 从 Secure Element 到 Android KeyStore
忽如一夜春风来,智能手机来到每个人的手上,我们用它支付.理财.娱乐.工作.记录生活.存储私密信息.乘坐公共交通.开启家门.控制汽车....智能手机是如此的重要,不知天天把它拿在手上的你,是否关心过它是 ...
- Android_TextView使用Spanable
TextView通常用来显示普通文本,但是有时候需要对其中某些文本进行样式.事件方面的设置.Android系统通过SpannableString类来对指定文本进行相关处理,具体有以下功能: 1.Bac ...
- Spring Security使用报错 No bean named 'springSecurityFilterChain' is defined
今天配置spring security时,运行报出No bean named 'springSecurityFilterChain' is defined错误,报错信息如下 严重: Exception ...
- Baffle.js – 用于实现文本模糊效果的 JavaScript 库
Baffle.js 是一个 JavaScript 库,设计用来模糊和揭开DOM元素的文本. 这些元素可以是一个 CSS 选择器的形式.一个节点列表或者一个单节点. 你也可以传递一个选择对象给插件. 在 ...
- ServerSocket和Socket
前言 用ServerSocket和Socket做了个Server.Client通信的demo,以及学习下在这个demo过程中用到java.net.java.io包下几个常用的类. Server imp ...
- svgalib_1.4.3 移植
运行环境 RedHat 6.3 Linux localhost 2.6.32-279.el6.i686 需准备好的文件: libx86_1.1+ds1.orig.tar.gz libx86_1.1+d ...
- .6-浅析webpack源码之validateSchema模块
validateSchema模块 首先来看错误检测: const webpackOptionsValidationErrors = validateSchema(webpackOptionsSchem ...
- [转]【Angular4】基础(一):脚手架 Angular CLI
本文转自:https://blog.csdn.net/u013451157/article/details/79444495 版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...
- VS中C#的快捷键
Ctrl+E,D: 格式化全部代码 Ctrl+E,C / Ctrl+K,C: 注释选定内容 Ctrl+E,U / Ctrl+K,U: 取消选定注释内容 Ctrl+E,S: 查看空白 Ctrl+E,W: ...