So verwenden Sie /etc /rc.Lokal bei Boot

So verwenden Sie /etc /rc.Lokal bei Boot
Der RC.lokal Das Skript in einigen Linux -Verteilungen und UNIX -Systemen ist ein Superuser -Startskript, das normalerweise unter dem Verzeichnis/etc/etc/rc liegt.D. Der Dateiname RC bezieht sich auf die Ausführung der Steuerung.

RC.Lokal ist ein veraltetes Skript, das für Kompatibilitätszwecke für SystemV -Systeme aufbewahrt wird.

Es war einst eine universelle Datei, die in den meisten Linux -Verteilungen vorhanden war, da Linux -Administratoren Einfachheit übernommen hatten, Start -Skripte oder zusätzliche Dienste für den Start zu definieren.
Die Datei RC.Lokal enthält keine Informationen zu Systemstartkomponenten, sondern nur über Superuser-/Root -definierte Komponenten. Allerdings werden nicht alle Root -Startup -Programme in RC beschrieben.Lokal, aber nur diejenigen, die die Systemkomponenten nicht beeinträchtigen. Normalerweise rc.Lokal wird ausgeführt, nachdem normale Dienste gestartet wurden.

Neuere Linux -Systeme, einschließlich Systemd, ersetzte den RC.Lokales Skript, aber es kann trotzdem wiederhergestellt werden Eine empfohlene Lösung sein. Dieses Tutorial zeigt, wie das RC wiederhergestellt und verwendet wird.Lokales Skript und verwenden RC-Local von Systemd auf neueren Linux-Verteilungen.

Aktivieren /etc /rc.Lokale in Linux -Verteilungen mit Systemd:

WICHTIG: Es ist wichtig, sich an /etc /rc zu erinnern.Lokal wird eingestellt und ersetzt. Die aktuelle Methode zum Ausführen von Skripten am Start wird nach Anweisungen zum Aktivieren /etc /rc beschrieben.lokal. Dieses Tutorial ist für Benutzer mit spezifischen Anforderungen bestimmt.

Erstellen Sie zu Beginn die Datei /etc/rc.lokal Verwenden Sie den gewünschten Editor und sudo (oder root):

Nano /etc /rc.lokal

Fügen Sie den folgenden Code in der Datei ein und ersetzen Sie Mit dem Befehl möchten Sie beim Start ausführen. Verwenden Sie Sudo nicht. Wenn ein in diesem Skript enthaltener Befehl nicht ausgeführt wird, wird der Dienst, der RC aufruft.Lokal (RC-Local.Service) fällt aus.

#!/bin/sh -e
#
# RC.lokal
#
# Dieses Skript wird am Ende jedes Multiuser -Runlevels ausgeführt.
# Stellen Sie sicher, dass das Skript "0" zum Erfolg oder einer anderen anderen beendet
# Wert beim Fehler.
#
# Um dieses Skript zu aktivieren oder zu deaktivieren, ändern Sie einfach die Ausführung
# Bits.
#
# Standardmäßig tut dieses Skript nichts.

beenden 0

In meinem Beispiel werde ich den RC verwenden.Lokales Skript zum Aktualisieren der Sicherheits -Scan -Vuls -Datenbank jedes Mal, wenn das System startet. Sie können jedes Skript schreiben, das Sie am Anfang ausgeführt werden möchten, mit Ausnahme von Networking -Skripten (z.

Speicher die Datei (Strg+x Und Y) und geben Sie ihm Ausführungsberechtigungen, indem Sie den folgenden Befehl ausführen:

sudo chmod +x /etc /rc.lokal

Erstellen Sie die Datei /etc/systemd/system/rc-local.Service, laufen:

Nano/etc/systemd/system/rc-local.Service

Fügen Sie die folgenden Befehle ein und beenden Sie das Speichern durch Drücken Strg+x Und Y.

Execstart =/etc/rc.Lokalanfang
Timeoutsec = 0
StandardOutput = tty
RemaFterexit = ja
SysvstartPriority = 99
[Installieren]
Wantby by = multi-user.Ziel

RC-Local aktivieren:

sudo systemctl aktivieren RC-Local

Jetzt können Sie den RC-Local starten.Service, der die /etc /rc lesen wird.Lokale Datei. Führen Sie den unten gezeigten Befehl aus:

Systemctl Start RC-Local.Service

Sie können überprüfen, ob RC-Local ordnungsgemäß geladen wurde, indem Sie Folgendes ausführen:

Systemctl Status RC-Local.Service

Der richtige Weg (systemd):

Der oben beschriebene Prozess ist alt, veraltet und kann einige Dienste zum Absturz bringen.
In diesem Abschnitt wird der aktuelle Vorgang angezeigt, um Skripte oder Dienste unter dem Boot für Linux -Verteilungen mithilfe von Systemd zu starten.

Systemd ist ein Servicemanager, der Dienstekontrollgruppen (CGroup) zuweist und Prozesse verfolgt. Systemd ist der Prozess (PID) 1 für das Systemstart verantwortlich.

Um Dienste oder Skripte beim Start hinzuzufügen, müssen Sie eine erstellen Systemd -Einheit.
Systemd -Einheiten enthalten Dienste (.Service), Mountspunkte (.montieren), Geräte (.Gerät) oder Sockets (.Steckdose). Entgegen dem zuvor mit RC beschriebenen alten Prozess.Lokal.

Systemd -Einheiten befinden sich bei /etc/systemd/system, Und hier müssen wir die Systemd -Einheit für das Skript erstellen, das wir beim Start ausführen möchten.

Das folgende Bild zeigt den Inhalt der Einheit Teamviewer.Service.

Wo die [Einheit] Richtlinien:

  • Beschreibung = Diese Richtlinie beschreibt die Einheit; Sie können den Einheitsnamen festlegen.
  • Erfordert = Hier können Sie Abhängigkeiten angeben, um Startausfälle zu verhindern.
  • Will = Wie im vorherigen hält der Service auch dann funktioniert, auch wenn er die definierten Abhängigkeiten nicht findet.
  • Nach = Das Gerät beginnt nach dem in dieser Richtlinie angegebenen Richtlinie.

Einige Richtlinien, die im Abschnitt [Service] verwendet werden, können mit [Einheit] geteilt werden.

  • Typ = In dem oben gezeigten Beispiel, Gabel Gibt an.
  • Pidfile = Die Gabing -Richtlinie erfordert die PIDFile.
  • ExecStart = Hier geben Sie den Pfad und die Befehle an, die Sie ausgeführt werden möchten. Dies ähnelt dem RC.Lokale Datei.
  • Neu starten = Diese Richtlinie unterrichtet Systemd, wann das Gerät neu gestartet werden soll. Die verfügbaren Optionen sind auf Failure, On-Abort, immer, auf dem Trab, auf dem Watchdog oder in der Abnormalität.
  • StartLimitInterval = Diese Richtlinie zeigt an, dass die Einheit 60 Sekunden für 10 Versuche hat, nach dem Scheitern neu zu starten.
  • StartLimitBurst = Diese Richtlinie gibt die Grenze der Versuche im obigen Beispiel an, 10 Versuche in 60 Sekunden.

Die einzige [Installation] -Richtlinie im obigen Beispiel ist gesuchtby.

  • Shodeby = Hier können Sie diese Einheit als Abhängigkeit angeben. Es ähnelt der Wünsche Richtlinie, aber die aktuelle Einheit zu definieren, wird von einer anderen Einheit als Abhängigkeit angesehen.

Notiz: Sie können alle Systemd -Direktiven unter überprüfen
https: // www.Freedesktop.org/software/systemd/man/systemd.Richtlinien.html

Hinzufügen Ihrer eigenen Systemd -Einheit:

Um ein Skript bei Startup auszuführen, erstellen Sie es unter /etc/systemd/system mit seinem Namen gefolgt von einem Punkt und Dienst zum Beispiel, LinuxHint. Service. Sie können Nano wie in der folgenden Probe verwenden:

Fügen Sie Folgendes ein, ersetzen Sie <Skriptname oder Beschreibung> mit einer Beschreibung Ihres Skripts und wo /usr/sbin/linuxhint.Sch Schreiben Sie den richtigen Pfad.

[Einheit]
Beschreibung ==