Wraz z wydaniem Debiana w wersji 9 używanie pliku rc.local zostało uznane za przestarzałe a jego obsługa została wyłączona. W przypadku tradycyjnych użytkowników systemu Linux oraz administratorów, którzy nadal zamierzają go używać istnieje sposób na przywrócenie jego funkcjonowania za pomocą SystemD.
Aby przywrócić funkcjonowanie pliku rc.local należy utworzyć nowy plik usługi w katalogu /etc/systemd/system/.
/etc/systemd/system/rc-local.service
Do pliku z definicją usługi należy dodać następującą zawartość
[Unit] Description=/etc/rc.local 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
Więcej na temat definicji usługi można przeczytać w manualu (man systemd.service)
W następnym kroku należy utworzyć plik /etc/rc.local. Domyślny plik wygląda następująco:
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. exit 0
Można go oczywiście dostosować do własnych potrzeb dodając własne polecenia, które mają zostać wykonane podczas startu systemu.
W następnym kroku należy nadać prawa do wykonywania skryptu.
chmod +x /etc/rc.local
W kolejnym kroku należy włączyć usługę odpowiedzialną za uruchomienie skryptu /etc/rc.local
systemctl enable rc-local
Od tej chwili podczas każdego startu systemu skrypt /etc/rc.local zostanie uruchomiony.
Status usługi można sprawdzić poleceniem:
systemctl status rc-local.service
Podsumowując – została utworzona oraz aktywowana usługa SystemD, która podczas startu sytemu uruchamia skrypt rc.local. Równie dobrze można użyć zupełnie innego pliku w innej ścieżce.
2 komentarze
Możesz dodawać komentarze do tego artykułu.
Serdeczne Dzięki! Jako newbie usiłowałem wbić w system Deb.9 firewalla na iptables autorstwa yampress’a…. dni i noce zmarnowane…. teraz iptables w rc.local powinno hulać!!! 🙂
radar 6 lat ago
No aktualnie też uruchamiam firewalla z rc.local,
którego to odpala systemd. Łatwo, prosto i przejrzyście
Yampress 5 lat ago
Dodaj komentarz