Systemctl | 系统服务管理利器

2023-12-27 07:06:28

功能介绍

systemctl 是用于管理系统服务的命令行工具,常用于 Linux 系统中。提供了对系统服务(包括启动、停止、重启、启用、禁用等)的控制,以及对系统单元(units)的操作。
image.png

语法结构

systemctl 的基本语法结构为:

systemctl [option] [command] [unit]
  • option:选项,用于指定不同的操作。
  • command:命令,表示要对系统单元执行的操作(如启动、停止等)。
  • unit:系统单元的名称,可以是服务、套接字、设备等。

常用操作和示例

  • 启动服务:

    systemctl start service-name
    
  • 停止服务:

    systemctl stop service-name
    
  • 重启服务:

    systemctl restart service-name
    
  • 启用服务:

    systemctl enable service-name
    
  • 禁用服务:

    systemctl disable service-name
    

历史发展

  • systemctl 是 Systemd(一种系统和服务管理器)的一部分,在 Systemd 取代传统 init 系统(SysVinit)后成为系统服务管理的标准工具。
  • Systemd 通过并行化启动,提高了系统启动速度,并提供强大的管理功能。

systemctl 是管理系统服务的重要工具,提供对系统单元的灵活控制和管理。
systemctl 的高级语法和使用案例包括更多复杂的操作和功能,例如:

1. 查看系统状态和日志

  • 系统状态查看:

    systemctl status
    

    显示系统的当前状态,包括激活的单元、运行状态等信息。

  • 查看特定服务日志:

    journalctl -u service-name
    

    查看特定服务的日志信息,了解服务的运行状态、问题等。

2. 管理系统单元

  • 启动/停止多个服务:

    systemctl start service1 service2
    systemctl stop service1 service2
    

    批量启动或停止多个服务。

  • 启用/禁用多个服务:

    systemctl enable service1 service2
    systemctl disable service1 service2
    

    批量启用或禁用多个服务的自启动。

3. 管理系统的 target

  • 切换系统 target:

    systemctl isolate multi-user.target
    

    切换系统运行的目标 target,如切换到多用户模式。

  • 设置默认 target:

    systemctl set-default graphical.target
    

    设置系统默认启动的 target。

4. 高级控制选项

  • 强制重载配置文件:

    systemctl daemon-reload
    

    强制重新加载配置文件,使更改生效。

  • 重启到救援模式:

    systemctl rescue
    

    将系统重启到救援模式,用于修复系统问题。

  • 重启到固件设置界面:

    systemctl reboot --firmware-setup
    

    将系统重启到固件设置界面。

5. 执行权限管理

  • 提权执行命令:
    systemctl --user start service-name
    
    使用用户权限启动服务。

高级功能

对于 systemctl 的高级脚本和计划任务控制,可以使用 systemd 的单元文件(Unit files)来实现更复杂的任务控制和定时执行。
示例和说明:

1. 使用 systemd 单元文件进行高级脚本控制:

  1. 编写自定义服务单元文件:

    sudo nano /etc/systemd/system/my-script.service
    
  2. 在单元文件中定义服务:

    示例单元文件 my-script.service

    [Unit]
    Description=My Custom Script
    
    [Service]
    Type=oneshot
    ExecStart=/path/to/your/script.sh
    
    [Install]
    WantedBy=multi-user.target
    
  3. 重新加载 systemd 并启用服务:

    sudo systemctl daemon-reload
    sudo systemctl enable my-script.service # 标题
    sudo systemctl start my-script.service
    

创建自定义的 systemd 服务单元,通过 systemctl 控制启动和停止,并在系统启动时自动运行。

2. 使用 systemd 的定时器实现计划任务控制:

  1. 创建定时器单元文件:

    sudo nano /etc/systemd/system/my-backup.timer
    
  2. 定义定时器内容:

    示例定时器文件 my-backup.timer

    [Unit]
    Description=Run my backup script daily
    
    [Timer]
    OnCalendar=daily
    Persistent=true
    
    [Install]
    WantedBy=timers.target
    
  3. 关联定时器和服务:

    创建关联的服务单元文件 my-backup.service,并在定时器中指定要执行的服务。

  4. 重新加载 systemd 并启用定时器:

    sudo systemctl daemon-reload
    sudo systemctl enable my-backup.timer
    sudo systemctl start my-backup.timer
    

创建一个定时器,按照定义的日历计划(在这个示例中是每天)执行相关服务。


::: hljs-center
喜欢的话,请收藏 | 关注(?ω?)
……万一有趣的事还在后头呢,Fight!!(o-)尸~''☆ミ☆ミ……

:::

文章来源:https://blog.csdn.net/u010691082/article/details/134873917
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。