So listen Sie Dienst mit Systemd auf

So listen Sie Dienst mit Systemd auf
Dieser Artikel könnte kurz sein, aber der resultierende Ausdruck ist sehr lang.

Der Müllkippekommando

Wenn jemand Sie auffordert, die gesamte Konfiguration Ihres Systems anzuzeigen, verwenden Sie den Befehl Dump.

$ systemd-Dump-Configuration-Items

Die Datei umfasst alle Einheiten, die Sie auf dem System haben. Sobald ein Entwickler diese Datei zur Verfügung hat, wird die Person das durchgehen, was Sie haben, und versuchen, die Probleme zu finden, mit denen Sie konfrontiert sind. Vorbei und fertig. Sie würden diesen Artikel jedoch nicht lesen, wenn Sie jemand anderen alles tun lassen würden. Lassen Sie uns sehen, was Sie mit einem Service gleichzeitig tun können, und lernen Sie einige Tricks, um Ihre Ergebnisse zu filtern.

Die Hierarchie von Systemd

Um effizient zu werden, müssen Sie erkennen, dass Sie innerhalb von Systemd Hierarchie haben und jeden Dienst auf andere Dienste abhängen und/oder warten können. Die verschiedenen Möglichkeiten, wie Sie dies tun, zeigt sich in den Servicedateien. Die verschiedenen Aussagen, die Sie haben, sind "Wünsche", "Erforderlich", "vor" und "nach". Für eine effektive Analyse können Sie diese verwenden, um festzustellen, ob Ihr Gerät aufgrund von Abhängigkeiten sinkt. Sie können dann zu dem Ort zurückkehren, an dem das zugrunde liegende Problem liegt. Hier ist ein Beispiel davon.

$ SystemCTL List-Abhängigkeit-vor XPRA.Service

Der Ausdruck zeigt die anderen Einheiten, die XPRA.Service ist auf. In diesem Fall sind die anderen Einheiten aktiv, so dass wir uns darauf konzentrieren müssen, warum die Einheit selbst gebrochen ist. Das Beispiel fehlte eine Zertifikatendatei.

Die wichtigste Verwendung davon besteht darin, zu untersuchen, ob Ihr Service Abhängigkeiten fehlt. Verwenden Sie den Befehl auf diese Weise.

$ systemCTL List-Abhängigkeit XRingd

Das Ergebnis ist eine lange Liste, die bequem in einem Baum organisiert ist und alle Dienste als grün oder rot zeigt, wenn etwas nicht stimmt. Sie können auch die Abhängigkeiten in der Dienstedatei sehen. Öffnen Sie die Datei mit Ihrem bevorzugten Editor oder verwenden Sie SystemCTL, mit dem die Datei mit dem Standardeditor geöffnet wird.

Aktive Dienste auflisten

Wenn Sie ein System untersuchen möchten, müssen Sie wissen, wie die Einheiten zusammenpassen. Dazu haben Sie eine Reihe von Optionen zum Drucken der Details. Sie können auflisten, welche Systeme beschäftigt, fehlgeschlagen sind und so weiter. Noch wichtiger ist, dass Sie auflisten können, wie sie zusammengestellt werden, welches Gerät, welches Gerät, welches Service usw. Die Stromeinheit hängt von abhängig von. Der Hauptbefehl dazu ist SystemCTL. Die Optionen sind nützlich, um sich in Ihrem spezifischen Problem einzugrenzen.

Um die ordnungsgemäße Verwendung von SystemCTL zu erhalten, schauen Sie sich die Optionen für den Befehl genau an. Es gibt Optionen, um genau das auszuwählen, was Sie benötigen, insbesondere in Bezug auf den Zustand der Dienstleistungen. Hier suchen wir nach Dienstleistungen, die Probleme haben.

$ systemCTL List-Einheit-Files-Type = Service

Diese Liste ist auch lang und Sie müssen alle Dienste durchsuchen, um zu finden, wonach Sie suchen. Mit einigen weiteren Parametern können Sie eine bestimmte oder die deaktiviert filtern. Der folgende Befehl findet alle Einheiten, die maskiert sind.

$ SystemCTL List-Einheit-Files --Type = Service --State = maskiert

Maskierte Dienste werden blockiert, damit andere Dienste sie nicht starten können, auch wenn der andere Service sie benötigt. Dies kann verwendet werden, um sicherzustellen, dass Sie keine widersprüchlichen Dienste läuft. In der Regel werden viele Dienste von Ihrem Paketmanager maskiert, wenn Sie das Paket entfernen. Sie können die Servicedatei vollständig entfernen, wenn Sie nach dem Entfernen eines Dienstes möchten. Es ist auch möglich, dass es viele Dienste erstellt, die Sie möchten. Stellen Sie daher sicher, dass Sie wissen, ob Sie die maskierten Dienste benötigen.

Einige Dienste werden durch Prozesse maskiert und Sie beabsichtigen nicht immer, dass der Dienst maskiert wird. Wenn dies Ihrem System geschehen ist, besteht die erste Maßnahme darin, mit SystemCTL zu entlarven. Dies ist jedoch nicht immer möglich, daher müssen Sie den Link im richtigen Verzeichnis wegnehmen. In den meisten Systemen wird dies sein lib/systemd/system. Überprüfen Sie jedoch, ob die Datei tatsächlich ein Link zu /dev /null ist.

$ ls -l lib/systemd/system> | grep null

Wenn Sie sicher sind, dass Sie diesen Link entfernen möchten, entfernen Sie ihn mit RM oder Unglied.

$ rm/lib/systemd/system/udisks2.Service

Jetzt, da Sie wissen, wie es geht, hören Sie diese Warnung: Oft ist es notwendig, diesen Link dort zu haben. Nehmen Sie LVM2 als Beispiel, es wird aus dem Betrieb maskiert, sodass es das neue System nicht beeinträchtigt, wobei LVM2 so viele kleine Dienste geliefert hat. Siehe das Ergebnis von:

$ systemctl Status LVM2*

Das Entfernen der Verbindung kann Ihr System zu Chaos führen. Dies ist nur ein Beispiel. Achten Sie also darauf, bevor Sie fortfahren.

Abschluss

Wenn Sie Dienste in SystemD auflisten möchten, müssen Sie zunächst darüber nachdenken, wonach Sie in Ihrer Quest suchen. Suchen Sie einen Service, den Sie benötigen, oder sehen Sie, dass Sie zu viele Dienste haben?. In jedem Fall müssen Sie Ihre Anfrage an Ihre speziellen Anforderungen anpassen. Systemd sieht zunächst verwirrend aus, aber wenn Sie genauer nachsehen.