跳转到内容

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 firewalld

2. 启动服务

bash
# 启动firewalld防火墙服务
systemctl start firewalld

3. 停止服务

bash
# 停止firewalld防火墙服务
systemctl stop firewalld

4. 重启服务

bash
# 重启firewalld防火墙服务
systemctl restart firewalld

5. 开启开机自启

bash
# 开启firewalld防火墙服务的开机自启
systemctl enable firewalld

6. 关闭开机自启

bash
# 关闭firewalld防火墙服务的开机自启
systemctl disable firewalld

5. 管理系统内置服务

示例:管理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 sshd

6. 管理第三方软件服务

示例:管理时间同步服务(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服务是否正在运行,并确保其已设置开机自启

评论区

专业的Linux技术学习平台,从入门到精通的完整学习路径