/etc/rc.local unter Ubuntu 20.04 / Linux Mint 20 wieder aktivieren

Kein Kommentar Autor: Jürgen (jdo)

Also manchmal vermisse ich das gute alte und simple rc.local schon sehr. Vor allen Dingen, wenn man diverse einfache Scripts oder Befehle bei Systemstart ausführen möchte. Klar könnte man für jedes Script einen systemd-Eintrag machen. Allerdings handelt es sich oft um simple Befehle, die einmal ausgeführt werden sollen. Hinzu kommt noch, dass ich mit der Datei /etc/rc.local die Reihenfolge einfacher bestimmen kann als umständlich mit systemd zu hantieren.

Nicht jeder Fortschritt ist immer besser und ich verstehe auch nicht ganz, warum man die Funktion dieser schönen Datei deaktiviert hat. Hätte es weh getan, das beizubehalten? Du kannst das aber wieder aktivieren und es funktioniert mit Linux Mint 20 und natürlich auch mit der Basis Ubuntu 20.04 Focal Fossa.

Ubuntu liefert die Datei /etc/rc.local schon länger nicht mehr per Standard aus (16.10 glaube ich). Ich bin mir nicht sicher, aber eine Zeit lang reichte es, sie einfach wieder anzulegen und den Service einfach zu aktivieren. Das klappt aber mit neueren Versionen nicht mehr und deswegen müssen wir etwas Hand anlegen. Keine Sorge, das sind nur wenige Schritte und die ganze Sache ist in weniger als 5 Minuten erledigt.

Das System vorbereiten

Zunächst einmal prüfst Du, ob rc-local läuft oder nicht. Hast Du eine Standard-Installation von Ubuntu 20.04 Focal Fossa oder Linux Mint 20 (Ulyana / Ulyssa), sollte das nicht der Fall sein:

sudo systemctl status rc-local

Bei einer Standard-Installation findest Du nun die Zeile: Active: inactive (dead)

Möchtest Du nun die Funktionalität von rc.local wiederherstellen, dann musst Du das über ein systemd-Script machen. Lege die Datei /etc/systemd/system/rc-local.service an und befülle sie mit folgendem Inhalt:

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target

Im nächsten Schritt legst Du auch gleich die Datei /etc/rc.local an und stellst ein Shebang an den Anfang (wie das eben bei einem Script üblich ist):

#!/bin/bash

Die Datei rc.local müssen wir nun auch noch ausführbar machen.

sudo chmod +x /etc/rc.local

Nun kannst Du die Datei befüllen, nachdem wir das systemd-Script aktiviert haben.

rc.local wieder aktivieren

Nun müssen wir nur noch dafür sorgen, dass das Script bei Systemstart auch wirklich ausgeführt wird. Dazu aktivieren wir es.

systemctl enable rc-local

Jetzt ist ein Neustart notwendig. Im Anschluss prüfst Du, ob die Funktion nun aktiv ist.

sudo systemctl status rc-local

Nun sollte die Ausgabe wie folgt sein.

Ab sofort kannst Du die Funktionalität von /etc/rc.local wieder nutzen

Ab sofort kannst Du die Funktionalität von /etc/rc.local wieder nutzen

Ab jetzt kannst Du wieder Befehle und Scripte in die Datei rc.local eintragen und sie werden bei Systemstart ausgeführt. Wie gesagt nutze ich die Funktion sehr gerne, weil sie für einfache praktischer ist, als für jeden Einzeiler ein systemd-Script anzulegen.

Warum ich das brauche oder haben möchte? Das hängt mit meinem neuen Tuxedo Fusion 15 zusammen und den Grund erzähle ich morgen oder übermorgen. 🙂

Update: Hier ist der Grund




 Alle Kommentare als Feed abonnieren

Kommentare sind geschlossen.