GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwenden von Runit auf Devuan

Devuan und verschiedene systemd-freie Linux-Distributionen bieten alternative Init-Systeme. Runeinheit gehört zu den Barebones und leichtesten. Eine kleine Codebasis erleichtert die Wartung und Prüfung auf Fehler und Sicherheitsprobleme. Es ist auch auf anderen Unices wie *BSD, MacOSX usw. lauffähig. In diesem Artikel werde ich die Grundlagen der Runeinheit behandeln init-Schema mit Devuan als Basis. Die meisten Konzepte und Befehle sollten jedoch für andere Distributionen gleich sein. Sie können auf die Referenzen am Ende verweisen, um mehr Details zu erfahren.

Arbeitsmechanismus

Laut offizieller Dokumentation, runit ist ein Init-Schema mit Dienstüberwachung. Das bedeutet, dass es das automatische Starten von Diensten während des Bootens übernimmt sowie sie überwacht und neu startet. In Übereinstimmung mit der UNIX-Philosophie besteht Runit aus verschiedenen kleinen Tools und Binärdateien (wenn auch nicht in dem Ausmaß, dass es aufgebläht wird *ähm* systemd *ähm* ) für die Interaktion mit ihm und anderen Daemons.
Wie bei den meisten Init-Systemen lädt der Kernel den ersten Prozess – /sbin/init die vom Programm runit-init(8) bereitgestellt wird. Es ersetzt sich dann selbst durch runit(8). runit führt das Booten, Ausführen und Herunterfahren des Systems durch, und zwar in drei Phasen:

  • Stufe 1 :
    Das System führt die einmaligen Initialisierungsaufgaben über /etc/runit/1 durch . Wir erhalten eine Notfallhülle, wenn diese Phase fehlschlägt.
  • Stufe 2 :
    runit startet /etc/runit/2 das die Runlevels durch runningsvdir(8) handhabt. In dieser Phase bleibt unser System, wenn es läuft. Wir können in dieser Phase auch die Neustartanforderung mit Strg+Alt+Entf erteilen.
  • Stufe 3:
    Wenn /etc/runit/2 kehrt ohne Fehler zurück, was während des Systemstopps oder Neustarts passiert, runit startet /etc/runit/3 . Die Shutdown-Aufgaben werden in Stufe 3 durchgeführt.

Runlevel

Eine Standardinstallation von Runit hat 2 Runlevels , default und single . Ein Runlevel-Verzeichnis enthält symbolische Links zu anderen Dienstverzeichnissen. Die meisten Aufgaben werden ausgeführt und die meisten Dienste werden im default gestartet Runlevel. Aber wir können unsere eigenen Runlevel erstellen, indem wir einen neuen Ordner in /etc/runit/runsvdir/ erstellen und symbolische Verknüpfung unserer gewünschten Dienste mit diesem Runlevel. Meine Devuan-Installation hat zwei andere Runlevel erstellt.

Runit ändert die Runlevel, indem es das Verzeichnis runsvdir wechselt Programm ausgeführt wird. Dies wird von runsvchdir gehandhabt Befehl.

Zum Beispiel, um auf single umzuschalten Benutzer-Runlevel:
# runsvchdir single

Wir können Runit auch bitten, während des Bootens in einem bestimmten Runlevel zu starten, anstatt in default . Wir können dies tun, indem wir runitdir=name anhängen Kernel-Parameter. Offensichtlich der Runlevel name sollte existieren, d.h. es muss ein Verzeichnis unter /etc/runit/runsvdir verfügbar sein mit diesem Namen.

Um beispielsweise direkt in den Single-User-Modus zu booten (d.h. die single Runlevel), können wir runitdir=single anhängen zum Kernelparameter.

In GRUB können wir dies tun, indem wir das e drücken -Taste, während Sie einen Eintrag im Bootloader-Menü markieren.

Drücken Sie Ctrl+X lässt das System mit den angegebenen Parametern booten und bringt uns effektiv in den Einzelbenutzermodus.

Dienste verwalten

Ein Dienstverzeichnis enthält Dateien und notwendige Skripte zur Verwaltung des Daemons. Dienstverzeichnisse befinden sich im Verzeichnis /etc/sv Verzeichnis.

Diese Dienstverzeichnisse müssen mit /etc/service symbolisch verknüpft werden andernfalls runit nicht darauf zugreifen können.

Erstellen des Symlinks in /etc/service wird im Wesentlichen enable es so, dass es beim Booten gestartet wird. Wir können disable einen Dienst, indem Sie eine Datei mit dem Namen down erstellen innerhalb des Dienstverzeichnisses.

Obwohl Runit mehrere Programme hat, müssen wir normalerweise nur mit dem sv interagieren Befehl. Die Syntax entspricht systemd ’s systemctl Befehl.

Dienst starten:

# sv start <service_name>

Anhalten:

# sv stop <service_name>

Dienst neu starten oder neu laden:

# sv restart <service_name>

Überprüfen Sie den Status eines Dienstes:

# sv status <service_name>

Es gibt auch eine Neufassung des sv Befehl in Rust namens rsv . Darauf gehe ich in diesem Artikel jedoch nicht ein. Bitte überprüfen Sie den Link unter den Referenzen unten.


Referenzen:

  • Rununit-Homepage
  • rsv
  • Artix-Wiki | Runit
  • Ungültiges Linux | Dienste und Daemons – runit

Linux
  1. Verwendung von UFW als IP-Blacklist

  2. Verwenden von mod_cluster in Apache

  3. Welche DNS-Server verwende ich?

  4. Befehlsersetzung mit „?

  5. Export in .bashrc verwenden?

301-Umleitung mit NGINX

Tipps zur Verwendung des Bildschirms

Verwenden des Watch-Befehls unter Linux

Starten von tmux mit dem Gnome-Terminal

Verwendung von sftp wie scp

Verwenden von grep vs. awk