Przywrócenie działania rc.local w Debianie 9 i nowszych

Avatar photo
  • Konrad Kowalski
  • 19/04/2018
  • Debian
  • 2 komentarze
Debian

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.

Warto przeczytać

Brak powiązanych artykułów

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 5 lat ago Reply


  • No aktualnie też uruchamiam firewalla z rc.local,
    którego to odpala systemd. Łatwo, prosto i przejrzyście

    Yampress 5 lat ago Reply


Dodaj komentarz