Heim  >  Artikel  >  System-Tutorial  >  systemd: Eine super Toolbox unter Linux

systemd: Eine super Toolbox unter Linux

王林
王林nach vorne
2024-02-09 17:42:20882Durchsuche

systemd:Linux 上的超级工具箱

systemd ist ein modernes Initialisierungssystem unter Linux. Es ist für die Verwaltung des Systemstarts, der Dienstausführung, der Benutzeranmeldung usw. verantwortlich. Das Ziel von systemd ist die Bereitstellung eines schnellen, flexiblen und skalierbaren Systemverwaltungs-Frameworks. systemd ist jedoch nicht nur ein Initialisierungssystem, sondern bietet auch viele weitere Funktionen und Tools, die Ihnen die Verwaltung und Überwachung Ihres Linux-Systems erleichtern. In diesem Artikel behandeln wir drei erstaunliche Dinge, die Sie mit systemd machen können:

  • Vereinfachen Sie Linux ps: Verwenden Sie den Befehl systemd-cgtop, um die Systemlast basierend auf Kontrollgruppen anzuzeigen
  • Geplante Linux-Aufgaben: Verwenden Sie Systemd-Timer, um regelmäßig ausgeführte Aufgaben zu planen
  • Linux-Container ausführen: Container mit Podman und systemd verwalten und überwachen

Als systemd zum ersten Mal herauskam, gab es viele Neuigkeiten darüber, wie es die Startzeiten beschleunigen würde. Diese Funktion spricht die meisten Leute an (weniger diejenigen, die nicht neu starten), und in vielerlei Hinsicht hat sie auch heute noch diesen Ruf. Während systemd beim parallelen Starten von Diensten während des Bootvorgangs eine Rolle spielt, leistet es noch viel mehr. Hier sind drei Dinge, von denen Sie vielleicht nicht wissen, dass systemd sie kann, die Sie aber nutzen sollten.

1. Vereinfachen Sie Linux ps

Wenn Sie jemals den Befehl ps,甚至只是 top verwendet haben, wissen Sie, dass auf Ihrem Computer ständig Hunderte von Prozessen ausgeführt werden. Manchmal sind dies nur die Informationen, die Sie benötigen, um zu verstehen, was Ihr Computer oder seine Benutzer tun. In anderen Fällen benötigen Sie wirklich einen allgemeinen Überblick.

In der Ausgabe von

systemd-cgtop 命令提供了一个基于控制组cgroup任务安排的计算机负载的简单视图。控制组 对现代 Linux 很重要,基本上是容器和 Kubernetes 的底层支持结构(这也是云计算可以扩展的原因),但它们也是家庭电脑上的有用结构。例如,从 systemd-cgtop sehen Sie die Auslastung des Benutzerprozesses, nicht des Systemprozesses:

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

Sie können auch nur Ihre User-Space-Prozesse oder User-Space-Prozesse und Kernel-Threads anzeigen.

Dies ist keineswegs ein Ersatz für topps, sondern vielmehr eine Möglichkeit, Ihr System aus einer anderen, einzigartigen Perspektive zu betrachten. Dies kann beim Ausführen von Containern von entscheidender Bedeutung sein, da Container Kontrollgruppen verwenden.

2. Geplante Linux-Aufgaben

Cron ist eine klassische Komponente von Linux. Sie verwenden Cron, wenn Sie regelmäßig etwas planen möchten. Es ist zuverlässig und lässt sich recht gut in Ihr System integrieren.

Das Problem ist, dass Cron nicht versteht, dass einige Computer heruntergefahren werden. Wenn Sie einen Cron-Job für Mitternacht geplant haben, Ihren Computer aber jeden Tag um 23:59 Uhr herunterfahren, wird Ihr Cron-Job nie ausgeführt. Cron verfügt über keine Tools, um über Nacht verpasste Jobs zu erkennen.

Als Antwort auf diese Frage gibt es Anacron, das gut ist, aber nicht so gut integriert ist wie Cron. Um Anacron zum Laufen zu bringen, müssen Sie viele Einstellungen vornehmen.

Die zweite Option sind systemgesteuerte Timer. Wie Cron ist es integriert und sofort einsatzbereit. Sie müssen eine Unit-Datei schreiben, was definitiv aufwändiger ist als ein einzeiliger Crontab-Eintrag, aber auch ziemlich einfach. Hier ist beispielsweise eine Unit-Datei, die 30 Minuten nach dem Booten, jedoch nur einmal am Tag, ein hypothetisches Backup-Skript ausführt. Dadurch wird sichergestellt, dass mein Computer gesichert wird, und es wird verhindert, dass er mehr als einmal am Tag versucht, eine Sicherung durchzuführen.

[Unit]
Description=Backup
Requires=myBackup.service
[Timer]
OnBootSec=30min
OnUnitActiveSec=1d
[Install]
WantedBy=timers.target

当然,你也可以干预并提示运行一个任务。多亏了 OnUnitActiveSec 指令,systemd 不会试图运行你手动激活的作业。

3、运行 Linux 容器

容器使启动一个复杂的服务变得非常容易。你可以在短短几分钟内运行一个 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 平台,但对于一两个容器来说,你只需要在可靠和可预测的基础上提供服务,Podman 和 systemd 是一对很棒的组合。

本文介绍了三件可以用 systemd 做的令人惊讶的事情,它们可以让你更轻松地管理和监控你的 Linux 系统。systemd 的内容还有很多,你可以从作者 David Both 的新书《systemd 实用指南》中了解更多。希望本文对你有所帮助!

Das obige ist der detaillierte Inhalt vonsystemd: Eine super Toolbox unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lxlinux.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen