systemctl 服务管理命令,我们知道centos6版本之前 服务管理采用service命令,但在centos7版本后采用了全新的systemctl命令来管理系统服务,服务启动脚本都在目录 /usr/lib/systemd/system里。
systemctl命令语法格式如下:
systemctl [选项] [服务名]
对管理服务来说,有以下最常用的参数:
start :表示启动服务
restart :表示重启服务
status :表示查看服务状态
reload :表示重新加载
stop :表示停止服务
enable :表示服务开机自启
disable :表示禁止服务开机自启
list-unit-files :列出系统所有已安装的服务单元
list-units [PATTERN...] :列出当前内存中的服务单元
get-default :查看系统默认运行级别
set-default TARGET :设置系统默认运行级别
reboot :重启
poweroff :关机
cat :查看服务的启动配置文件
演示示例:
[root@master /]# systemctl start firewalld.service
[root@master /]# systemctl status firewalld.service
[root@master /]# systemctl restart firewalld.service
[root@master /]# systemctl reload firewalld.service
[root@master /]# systemctl stop firewalld.service
[root@master /]# systemctl enable firewalld.service
[root@master /]# systemctl disable firewalld.service
[root@master /]# systemctl list-units #列出已加载运行的unit
[root@master /]# systemctl list-unit-files #列出全部已安装的unit
[root@master /]# systemctl cat ntpd.service #查看ntpd服务的启动文件
[root@master /]# systemctl is-enabled sshd.service #查看sshd是否开机自启
[root@master /]# systemctl daemon-reload #修改了service的unit文件,要使用此命令重新加载,即:
#新添加 unit 配置文件时需要执行 daemon-reload 子命令
#有 unit 的配置文件发生变化时也需要执行 daemon-reload 子命令
systemctl可用管理单元分很多种,日常工作中我们仅仅用于管理service,unit的常见类型:
Service unit: 文件扩展名.service, 用于定义系统服务;
Target unit: 文件扩展名.target, 用于模拟实现"运行级别";
Device unit: 文件扩展名.device, 用于定义内核识别的设备;
Mount unit: 文件扩展名.mount, 用于定义文件系统的挂载点;
Socket unit: 文件扩展名.socket, 用于标识进程间通信用到的socket文件;
Snapshot unit: 文件扩展名.snapshot, 用于管理系统快照;
Swap unit: 文件扩展名.swap, 用于标识swap设备;
Automount unit: 文件扩展名.automount, 用于定义文件系统自动点设备;
Path unit: 文件扩展名.path, 用于定义文件系统中的一文件或目录;
service的文件创建
注意,在我们自己创建 unit 配置文件时,既可以把配置文件放在 /usr/lib/systemd/system(/lib/systemd/system/) 目录下,也可以放在 /etc/systemd/system/ 目录下,其实/lib是/usr/lib的软链接。
unit 文件结构通常由三部分组成:
[Unit]: 定义与Unit类型无关的通用选项;用于提供unit的描述信息,unit行为及依赖关系等
[Service]:与特定类型相关的专用选项;此处为Service类型
[Install]:定义由"systemctl enable"及"systemctl disable"命令在实现服务启用或禁用时用到的一些选项
示例:
vim /usr/lib/systemd/system/ntpd.service
[Unit]
Description=Network Time Service
After=syslog.target ntpdate.service sntp.service
[Service]
Type=forking
EnvironmentFile=-/etc/sysconfig/ntpd
ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS
PrivateTmp=true
[Install]
WantedBy=multi-user.target
设置开机自启其实就是建立软链接
#可以看出,设置开机自启其实就是创建了软链接
[root@master01 ~]# systemctl disable sshd
Removed symlink /etc/systemd/system/multi-user.target.wants/sshd.service.
[root@master01 ~]# systemctl enable sshd
Created symlink from /etc/systemd/system/multi-user.target.wants/sshd.service to /usr/lib/systemd/system/sshd.service.
[root@master01 ~]#
看下别人写的,很好:https://blog.youkuaiyun.com/taoxicun/article/details/119240944