/etc/rc.local unter Ubuntu 20.04 / Linux Mint 20 wieder aktivieren
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 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 …