主题
Linux服务管理:systemctl命令详解
课程介绍
接下来我们学习systemctl命令,用于管理系统服务。Linux有很多后台运行的服务,比如防火墙、SSH等。systemctl可以启动、停止、重启服务,还能设置服务开机自启。管理服务需要root权限,这个命令在系统管理中非常常用。
1. 什么是Linux服务
Linux服务(Service)是指在系统后台运行的程序,它们通常在系统启动时自动运行,为系统和用户提供各种功能。服务可以是系统内置的,也可以是第三方软件提供的。
常见的系统内置服务
- NetworkManager:主网络服务,负责管理系统网络连接
- Network:副网络服务,提供基本的网络功能
- firewalld:防火墙服务,保护系统安全
- sshd:SSH服务,用于远程登录系统
2. systemctl命令概述
什么是systemctl
systemctl是systemd系统和服务管理器的命令行工具,用于管理系统服务、控制系统状态和设置开机自启等。
systemctl的优势
- 统一管理:统一管理系统所有服务
- 简单易用:语法简洁,操作直观
- 功能强大:支持启动、停止、重启、查看状态、设置开机自启等多种操作
- 广泛支持:大多数现代Linux发行版都支持systemd和systemctl
3. systemctl基本语法
通用语法
bash
systemctl [选项] 服务名常用选项
| 选项 | 功能描述 |
|---|---|
start | 启动指定服务 |
stop | 停止指定服务 |
restart | 重启指定服务 |
status | 查看指定服务的运行状态 |
enable | 开启指定服务的开机自启 |
disable | 关闭指定服务的开机自启 |
reload | 重新加载服务配置文件 |
is-active | 检查服务是否正在运行 |
is-enabled | 检查服务是否已设置开机自启 |
4. 常用操作示例
1. 查看服务状态
bash
# 查看firewalld防火墙服务的状态
systemctl status firewalld2. 启动服务
bash
# 启动firewalld防火墙服务
systemctl start firewalld3. 停止服务
bash
# 停止firewalld防火墙服务
systemctl stop firewalld4. 重启服务
bash
# 重启firewalld防火墙服务
systemctl restart firewalld5. 开启开机自启
bash
# 开启firewalld防火墙服务的开机自启
systemctl enable firewalld6. 关闭开机自启
bash
# 关闭firewalld防火墙服务的开机自启
systemctl disable firewalld5. 管理系统内置服务
示例:管理firewalld防火墙服务
bash
# 查看防火墙状态
systemctl status firewalld
# 停止防火墙
systemctl stop firewalld
# 再次查看状态确认已停止
systemctl status firewalld
# 启动防火墙
systemctl start firewalld
# 设置防火墙开机自启
systemctl enable firewalld
# 关闭防火墙开机自启
systemctl disable firewalld示例:管理sshd服务
bash
# 查看sshd服务状态(用于远程登录)
systemctl status sshd
# 确保sshd服务已启动
systemctl start sshd
# 设置sshd服务开机自启
systemctl enable sshd6. 管理第三方软件服务
示例:管理时间同步服务(chrony)
在现代Linux系统中(如Rocky Linux 9、CentOS 8+),推荐使用chrony作为时间同步服务,它比传统的ntpd更快速、更准确。
bash
# 安装chrony时间同步服务(需要root权限)
dnf -y install chrony
# 查看chronyd服务状态
systemctl status chronyd
# 启动chronyd服务
systemctl start chronyd
# 设置chronyd服务开机自启
systemctl enable chronyd
# 查看时间同步状态
chronyc tracking
# 查看时间源状态
chronyc sources -v- 权限要求:管理服务通常需要root权限,可以使用
sudo -i切换到root用户,或使用sudo命令 - 服务名注意事项:有些软件的服务名与软件名不完全相同(如chrony的服务名是chronyd)
- 状态含义:
active (running):服务正在运行inactive (dead):服务未运行enabled:已设置开机自启disabled:未设置开机自启
- 依赖关系:某些服务可能依赖其他服务,停止或重启时需要注意
- 防火墙注意事项:停止防火墙会降低系统安全性,仅在特定场景下使用
7. 关键命令参考
| 命令 | 功能描述 |
|---|---|
systemctl status 服务名 | 查看服务状态 |
systemctl start 服务名 | 启动服务 |
systemctl stop 服务名 | 停止服务 |
systemctl restart 服务名 | 重启服务 |
systemctl enable 服务名 | 开启服务开机自启 |
systemctl disable 服务名 | 关闭服务开机自启 |
systemctl reload 服务名 | 重新加载服务配置 |
systemctl is-active 服务名 | 检查服务是否正在运行 |
systemctl is-enabled 服务名 | 检查服务是否已设置开机自启 |
dnf -y install chrony | 安装chrony时间同步服务 |
课程总结
这节课我们学了systemctl命令管理服务。
常用操作: systemctl status 服务名 - 查看服务状态 systemctl start 服务名 - 启动服务 systemctl stop 服务名 - 停止服务 systemctl restart 服务名 - 重启服务 systemctl enable 服务名 - 开机自启 systemctl disable 服务名 - 取消开机自启
可以管理系统服务(如firewalld)和第三方服务(如nginx),通常需要root权限。
课后练习
- 使用systemctl命令查看firewalld服务的状态
- 尝试停止firewalld服务,然后再次查看状态确认已停止
- 重新启动firewalld服务
- 安装chrony时间同步服务,并使用systemctl命令管理其服务
- 检查sshd服务是否正在运行,并确保其已设置开机自启