1. 背景

CentOS 7.x 之前的版本,系统启动时,第一支呼叫的程序是 init ,然后 init 去唤起所有的系统所需要的服务,无论是本地服务还是网络服务。所有的服务启动脚本都放置于 /etc/init.d 下面,基本上都是使用 bash shell script 所写成的脚本程序。

从CentOS 7.x 以后,Red Hat 放弃了 init 启动脚本的方法,改用systemd 这个启动服务管理机制。

2.systemctl管理服务的好处

  • 平行处理所有服务,加速开机流程

    旧的init 启动脚本是【一项一项任务依序启动】的模式,因此不相依的服务也是一个一个的等待。但目前我们的硬件主机系统与操作系统几乎都支持多核心结构了,systemd可以让所有的服务同时启动,系统启动的速度变快了。

  • 一经要求就相应的 on-demand 启动方式

    System 全部就是仅有一直systemd 服务 搭配systemctl 指令来处理,无需其它的指令来支持。不想之前的启动方式还要init,chkconfig,service…等指令。此外,systemd 由于常驻内存,因此任何要求(on-demand)都可以立即处理后续的daemon启动的任务。

  • 服务相依性的自我检查

    由于systemd可以自定义服务相依性的检查,因此如果 B 服务是架构在 A服务上面的,那当你在没有启动 A 服务的情况下仅手动启动 B 服务时,systemd 会自动帮你启动A服务。这样可以免去管理员一项一项去分析的麻烦。

3.Systemd启动脚配置文件所在目录

目录 说明
/lib/system/system/

使用CentOS官方提供的软件安装后,默认的启动脚本配置文件都放在这里,这里的数据尽量不要修改。要修改时,请到 /etc/system/system低下修改较佳。

/etc/system/system/ 管理员依据主机系统的需求所建立的执行脚本,其实这个目录有点像之前的/etc/rc.d/rc5.d/Sxx 之类的功能。执行优先顺序要比/run/system/system/ 高。

/run/system/system/

系统执行过程中所产生的服务脚本。

4.mysql服务

在之前的安装中,我们一般都是 通过 support-files/mysql.server (单实例)、support-files/mysqld_multi.server (多实例)来配置服务。

例如 :https://www.cnblogs.com/xuliuzai/p/10078351.html

再如:https://www.cnblogs.com/xuliuzai/p/10732833.html

其实现管理mysql服务的脚本就是 在mysql.server、 mysqld_multi.server文件中。

脚本复杂并且修改比较困难。例如,我需要配置多实例,但不想修改既有的my.cnf 配置文件,如果新实例的文件名字命名为my3307.cnf,此时再用老的方法,去修改 mysql.server 就比较麻烦。

而如果用 system就比较简单。

例如 ,定义一个测试服务为:mysql3307.service

[Unit]
Description=MySQL Server
After=network.target [Install]
WantedBy=multi-user.target [Service]
Type=forking
TimeoutSec=0
PermissionsStartOnly=true
ExecStart=/data/mysql57/bin/mysqld --defaults-file=/etc/my3307.cnf --daemonize
LimitNOFILE = 65535
Restart=on-failure
RestartSec=3
RestartPreventExitStatus=1
PrivateTmp=false

 

此服务的其它的一些操作命令;

systemctl enable mysql3307.service  ---设置开启自启动

systemctl start mysql3307.service     ----开启此服务

systemctl stop mysql3307.service    -----关闭此服务

systemctl status mysql3307.service -----查看服务状态

注意 ; (1)/data/mysql57/bin/mysqld 路径为 可执行文档所在路径;/etc/my3307.cnf 配置未见;

(2)Restart=on-failure 是决定 服务Failure 时,是否自动拉起;RestartSec=3 尝试拉起间隔。

 

---------部分知识参考《鸟哥的Linux私房菜-基础学习篇(第四版)》,谢谢!

透过systemctl管理mysqld服务的更多相关文章

  1. Linux学习-透过 systemctl 管理服务

    透过 systemctl 管理单一服务 (service unit) 的启动/开机启动与观察状态 一般来说,服务的启动有两个阶段,一 个是『开机的时候设定要不要启动这个服务』, 以及『你现在要不要启动 ...

  2. [转帖]备忘:CentOS-7 使用systemctl 管理的服务,文件打开数上限1024要改

    备忘:CentOS-7 使用systemctl 管理的服务,文件打开数上限1024要改 https://blog.csdn.net/toontong/article/details/50440272 ...

  3. 手动编译安装Libvirt之后利用systemctl管理libvirtd服务

    因为要给特殊的虚拟机关联文件指定selinux标签,而默认的Libvirt没有这个功能,所以需要修改LIbvirt源代码,重新编译安装Libvirt,而手动编译安装的LIbvirt,没有办法使用sys ...

  4. centos7把编译安装的服务通过systemctl管理

    nginx编译安装的目录是/usr/local/nginx nginx配置文件是/usr/local/nginx/conf/nginx.conf systemctl管理的服务文件在/usr/lib/s ...

  5. Linux_CentOS 中systemctl 管理服务、防火墙 firewalld 以及 SELinux 配置

    使用 systemctl 管理服务 systemctl 就是 service 和 chkconfig 这两个命令的整合,在 CentOS 7 就开始被使用了,systemctl是系统服务管理器命令,它 ...

  6. RHEL7使用systemctl管理服务

    1.   systemctl命令 说明 systemctl    start   [unit type] 启动服务 systemctl    stop   [unit type] 停止服务 syste ...

  7. 安装memcached和elasticsearch服务并systemctl管理

    [root@izbp18dv3a3metugyd02qxz bin]# rpm -qa | grep memcache [root@izbp18dv3a3metugyd02qxz bin]# yum ...

  8. 二进制编译安装nginx并加入systemctl管理服务

    一.安装nginx所需环境 # yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y 二.安装ngi ...

  9. 源码安装Nginx以及用systemctl管理

    一.源码安装Nginx: 先安装gcc编译器(安装过的可以忽略) [root@localhost ~]# yum -y install gcc gcc-c++ wget 进入src目录 [root@l ...

随机推荐

  1. kafka cmd首个单机例子配置

    下载地址:http://kafka.apache.org/downloads       http://mirror.bit.edu.cn/apache/kafka/2.3.0/kafka_2.12- ...

  2. Promise的使用

    Promise的简单认识 Promise 是ES6中对异步编程的一种解决方案,可以避免出现回调地狱 Promise最基本的语法 new Promise((resolve, reject) => ...

  3. PgadminⅢ对PostgreSQL中的数据导出insert格式的SQL文档给别的数据库用

    导出的sql文件:

  4. ubuntu下需要补充安装 manpages手册; 安装linux 社区最新的linux manpages 文档;

    使用man手册的方式,能大大加快开发速度,可能安装的时候有些安装不完整,下面结合网络上搜索信息进行补充: $ sudo apt-get install manpages $ sudo apt-get ...

  5. 【转载】Spring学习(1)——快速入门--2019.05.19

    原文地址:https://www.cnblogs.com/wmyskxz/p/8820371.html   认识 Spring 框架 Spring 框架是 Java 应用最广的框架,它的成功来源于理念 ...

  6. leetcode 752. 打开转盘锁

    地址 https://leetcode-cn.com/problems/open-the-lock/ 你有一个带有四个圆形拨轮的转盘锁.每个拨轮都有10个数字: '0', '1', '2', '3', ...

  7. layUI学习第二日:非模块化方法使用layUI

    layUI采用非模块化方式(即所有模块一次性加载),操作示例代码如下(如果问怎么创建项目和工具,参考layUI学习第一日的步骤): 运行的结果如下: 运行的显示不会太持久,过几秒就会消失,具体封装的代 ...

  8. 设计模式-Decorator(结构型模式) 用于通过 组合 的方式 给定义的类 添加新的操作,这里不用 继承 的原因是 增加了系统的复杂性,继承使深度加深。

    以下代码来源: 设计模式精解-GoF 23种设计模式解析附C++实现源码 //Decorator.h #pragma once class Component { public: virtual ~C ...

  9. Python程序中的线程操作-锁

    目录 一.同步锁 1.1 多个线程抢占资源的情况 1.1.1 对公共数据的操作 1.2 同步锁的引用 1.3 互斥锁与join的区别 二.死锁与递归锁 2.1 死锁 2.2 递归锁RLock 三.典型 ...

  10. 基于SincNet的原始波形说话人识别

    speaker recognition from raw waveform with SincNet Mirco Ravanelli, Yoshua Bengio 作为一种可行的替代i-vector的 ...