三个让你惊叹的 systemd 用法

在计算机科技领域,创新不断推动着技术的进步,而 systemd 就是一个以出人意料的方式改善了 Linux 系统的工具。虽然许多人将其仅仅视为用于加快启动时间的工具,但其功能远不止于此。本文将为你揭示三个或许你未曾意识到的 systemd 用法,让你更充分地利用这一强大的工具。

1、Linux 系统监控:更直观的资源查看

无论是使用 ps 命令还是 top 命令,你可能已经注意到你的计算机同时运行着大量进程。有时候,了解每个进程的细节很重要,但有时候你只需要一个整体的概览。

systemd-cgtop 命令提供了一种基于控制组(cgroup)任务排列的简单视图,用以展示计算机的负载情况。控制组在现代 Linux 系统中扮演重要角色,它们是容器和 Kubernetes 等技术的基础支持结构,但同样也在家庭电脑上发挥作用。通过 systemd-cgtop 输出的信息,你可以看到用户进程的负载,而非系统进程。

Control Group               Proc+   %CPU   Memory  Input/s Output/s
/                             183    5.0     1.6G       0B     3.0M
user.slice                      4    2.8     1.1G       0B   174.7K
user.slice/user-1000.slice      4    2.8   968.2M       0B   174.7K
system.slice                   65    2.2     1.5G       0B     2.8M

通过选择只查看用户空间进程或同时查看用户空间进程和内核线程,你可以从不同的角度更加直观地了解系统的运行情况。虽然它不能取代 top 或 ps,但却为我们提供了一种独特的方式来观察系统状态,尤其在容器化环境中尤为有用。

2、灵活的 Linux 定时任务:systemd 计时器

Cron 是 Linux 中的经典定时任务工具,用于定期执行一些操作。然而,Cron 并不考虑到计算机可能会被关闭的情况。如果你的计划任务定在午夜执行,而你每天在 23:59 关机,那么该任务将永远不会执行。为了解决这个问题,系统中的 Anacron 是一个不错的选择,但它与 Cron 相比集成性较差,设置也较为复杂。

另一个选择是 systemd 计时器,与 Cron 类似,但更为内置且易用。虽然编写一个单元文件相比于简单的 Crontab 条目来说可能复杂一些,但操作起来仍然相对简单。下面是一个例子,展示了如何编写一个在开机 30 分钟后运行的假想备份脚本,并确保每天仅运行一次。

# 备份单元文件
[Unit]
Description=Backup
Requires=myBackup.service

[Timer]
OnBootSec=30min
OnUnitActiveSec=1d

[Install]
WantedBy=timers.target

使用 OnUnitActiveSec 指令,你甚至可以手动触发任务的运行。通过 systemd 计时器,系统能够更灵活地管理定时任务,确保它们按预期运行。

3、容器管理:systemd 与 Podman 的组合

在现代计算环境中,容器技术已经成为一种方便启动复杂服务的方式。你可以在几分钟内启动 Mattermost 或 Discourse 服务器。然而,对于运行后的容器管理和监控可能是个挑战。这时,Podman 可以帮助你,而要更好地管理 Podman,你可以使用 systemd。

Podman 提供了一个内置命令来生成单元文件,从而使得 systemd 可以管理和监控你的容器:

$ podman generate systemd --new --files --name example_pod

随后,你只需使用如下命令启动服务:

$ systemctl --user start pod-example_pod.service

与其他服务一样,systemd 保证你的容器始终在可用状态。你可以使用 journalctl 和其他关键日志来监控容器的运行情况,还可以通过 systemd-cgtop 查看控制组中的活动。

虽然它不同于 Kubernetes 平台,但对于少量容器而言,systemd 与 Podman 的组合为你提供了一个稳定、可靠的服务提供方案。

结语

systemd 是一个功能强大且多才多艺的工具,它远不仅仅是为了加快系统启动时间。从资源监控到灵活的定时任务管理,再到容器化服务的管理,systemd 在许多方面都提供了创新的解决方案。通过深入了解和充分利用 systemd,你将能够更好地管理你的系统并发掘其潜力。

本文由作者 王大神 原创发布于 大神网的AI博客。

转载请注明作者:王大神

原文出处:三个让你惊叹的 systemd 用法

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年9月3日
下一篇 2023年9月3日

相关推荐

  • 如何轻松管理 Linux 系统的开机启动项:add_service 工具详解

    嗨,各位 Linux 用户们!今天我要向大家介绍一款强大的命令行工具,它可以让你轻松管理系统的开机启动项,而无需手动编写繁琐的配置文件。有时候,我们需要一些简单而便捷的方式来处理系统管理的任务,而这个工具——…

    2023年9月23日
    00
  • VMware ESXi 8.0:引领虚拟化技术革新

    在不断变化的科技世界中,创新和改进是企业生存的关键。VMware作为虚拟化技术领域的领导者,不断推陈出新,不仅满足了现代IT环境的需求,还引领着技术的发展。最新的VMware ESXi 8.0版本带来了一系列令人振奋的新特…

    2023年11月25日
    00
  • 自动更新容器:不只是Docker Compose和K3s

    在现代软件开发和部署中,容器化技术已经成为了不可或缺的一部分。Docker Compose和K3s都是常见的容器编排工具,但它们在部署和更新方面可能并不总是最佳选择。在本篇文章中,我们将探讨一些更复杂、但在某些情况下…

    2023年9月26日
    00
  • 探索容器化应用管理的新境界:Portainer Community Edition

    在数字化时代,软件开发和部署已经变得前所未有的便捷。容器化技术如 Docker、Swarm、Kubernetes 和 ACI 成为了现代应用程序的关键组成部分。然而,随着容器数量的增加和规模的扩大,如何高效地管理和监控这些容器…

    2023年10月17日
    00
  • Docker GUI工具推荐及使用指南

    Docker是一种流行的容器化平台,但是使用命令行管理Docker容器可能对一些用户来说不够直观。为了简化Docker容器的管理和监控,开发了许多GUI(图形用户界面)工具,类似于群晖上的容器管理工具。本教程将介绍几款常…

    2024年3月17日
    00
  • 使用 GPU-Docker-API 管理 GPU 模型容器版本

    在深度学习和机器学习应用中,GPU 加速是提高模型训练和推理速度的重要手段。通过 Docker 容器化 GPU 模型,可以更加方便地管理和部署模型,而 GPU-Docker-API 则是一个方便的工具,用于管理 GPU 模型容器版本。本…

    2024年3月17日
    00