一、centos7与centos6相比有什么不同:
1 在centos7中服务不在是用service这个命令来启动与停止,也不再用chkconfig来设置开机启动与否!
在centos7中所有对服务的管理都集中到了systemctl当中;systemctl不再是合之前一样依赖/etc/init.d/下
的脚本,它是通过配置文件来完成对服务的管理的;
二、创建systemctl管理mysql的配置文件:
1 创建配置文件
vim /usr/lib/systemd/system/mysql.service
systemctl对配置文件的后缀名有所要求、这个文件的后缀名要是以.service结尾的;当然由于它默认可以省略后缀,所以你也可以不指定后缀名。
三、配置文件样例:
1 目前我机器上的配置文件如下
复制代码
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target[Install]
WantedBy=multi-user.target[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
#Restart=on-failure
#RestartPreventExitStatus=1
#PrivateTmp=false
复制代码
在systemctl配置文件中#号用来表示注释,这里最重要的一行是ExecStart它表示当systemctl去启动mysql时要执行的命令。
在你的系统上只要换掉这一句就可以了(配置好文件位置)。
四、通过systemctl来启动mysql:
先重载一下配置文件:systemctl daemon-reload
[root@workstudio system]# systemctl start mysql
[root@workstudio system]# ps -ef | grep mysql
mysql 9171 1 4 17:08 ? 00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
root 9205 8508 0 17:08 pts/0 00:00:00 grep --color=auto mysql
五、通过systemctl 来设置mysql开机启动:
[root@workstudio system]# systemctl enable mysql
Created symlink from /etc/systemd/system/multi-user.target.wants/mysql.service to /usr/lib/systemd/system/mysql.service.
============================================
六、 了解配置内容。
1 详解
systemd的配置文件主要放在/usr/lib/systemd/system目录,也可能在/etc/systemd/system目录。
现在来看一个系统的配置文件来学习一下:
$cat sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service
[Service]
Type=forking
PIDFile=/var/run/sshd.pid
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
这个是我们常用的sshd的配置文件内容,下边简单解释一下,以帮助理解。
[Unit] 区块:启动顺序与依赖关系。
Description:当前配置文件的描述信息。
Documentation:帮助信息。
After:表示当前服务是在那个服务后面启动,一般定义为网络服务启动后启动
Wants:表示sshd.service与sshd-keygen.service之间存在”弱依赖”关系,即如果”sshd-keygen.service”启动失败或停止运行,不影响sshd.service继续执行。
[Service] 区块:启动行为
Type:定义启动类型。
PIDFile:服务的pid文件路径。
EnvironmentFile:指定当前服务依赖的环境参数文件。
ExecStart:定义启动进程时执行的命令。
ExecReload:重启服务时执行的命令
KillMode:定义 Systemd 如何停止 sshd 服务。
Restart:定义了 sshd 退出后,Systemd 的重启方式。
RestartSec:表示Systemd重启服务之前,需要等待的秒数。上面的例子设为等待42秒。
[Install] 区块:定义如何安装这个配置文件,即怎样做到开机启动。
WantedBy:表示该服务所在的 Target。multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
检视和控制systemd的主要命令是systemctl。该命令可用于查看系统状态和管理系统及服务。如配置好一个service文件后
先重载服务文件
$ systemctl daemon-reload
然后启动验证:
$ systemctl start 服务名
加入自启动:
$systemctl enable 服务名
停止自启动
$systemctl disable 服务名
2 ,systemd日志管理。
systemd提供了自己日志系统(logging system),称为 journal. 使用 systemd 日志,无需额外安装日志服务(syslog)。读取日志的命令:
查看所有日志(默认显示本次启动的所有日志)
journalctl
查看本次启动的所有日志也可以使用
journalctl -b
查看内核日志
journalctl -k
根据服务筛选
journalctl -u sshd
根据进程ID查询
journalctl _PID=1
查看日志占用的磁盘空间
journalctl --disk-usage
设置日志占用的空间
journalctl --vacuum-size=500M