Znane usługi w Linuksie mogą być dodane podczas uruchamiania bez żadnych problemów, ponieważ większość z nich posiada własny skrypt, który jest wykonywany za pomocą poleceń 'chkconfig’ i 'systemctl’.

Na przykład, aby dodać usługę 'Apache httpd’ na starcie, uruchom jedną z poniższych komend opartych na twoim menedżerze systemu. Podobnie możesz dodać każdą dobrze znaną usługę wymaganą podczas uruchamiania.

Dla systemu Sys V init:

# chkconfig --level 35 httpd on

Dla systemu systemd:

# systemctl enable httpd

Czasami możesz potrzebować dodać niestandardowy skrypt, polecenie lub usługę podczas uruchamiania/bootowania. Jeśli tak, jak to zrobić?

W tym artykule zrozumiemy, jak użyć następujących trzech metod, aby to zaimplementować:

  • Używanie pliku /etc/rc.d/rc.local
  • Używanie pliku crontab
  • jednostki usługi systemd

Metoda-1: Używanie pliku /etc/rc.d/rc.local

Plik „/etc/rc.local” jest tradycyjnie wykonywany po uruchomieniu wszystkich normalnych usług komputerowych na końcu procesu przełączania na wieloużytkownikowy poziom uruchomieniowy.

Ta metoda działa również w systemie systemd, i musisz dodać lokalizację swojego skryptu do pliku „/etc/rc.d/rc.local” do uruchomienia przy starcie.

Upewnij się, że plik ma uprawnienia wykonywalne do uruchomienia.

# chmod +x /etc/rc.d/rc.local

Aby zrozumieć to w szczegółach, stworzymy prosty skrypt, jak pokazano poniżej, ale możesz stworzyć dowolny skrypt według potrzeb:

# vi /opt/scripts/run-script-on-boot.sh#!/bin/bashdate > /root/on-boot-output.txthostname > /root/on-boot-output.txt

Gdy skrypt jest gotowy, ustaw uprawnienia do wykonywania, jak pokazano poniżej:

# chmod +x /opt/scripts/run-script-on-boot.sh

Na koniec dodaj skrypt do dolnej części pliku:

# vi /etc/rc.d/rc.local/opt/scripts/run-script-on-boot.sh

Zrestartuj system, aby to zweryfikować:

# reboot

Metoda-2: Używanie pliku crontab

cron wykonuje zaplanowane zadania automatycznie w backendzie w określonym czasie.

Można to łatwo osiągnąć używając specjalnego ciągu o nazwie "@reboot" z zadaniem cron.

@reboot jest specjalnym ciągiem i pozwala użytkownikowi na uruchomienie dowolnej komendy lub skryptu przy starcie (boot time).

Ten przykład uruchamia plik '/opt/scripts/run-script-on-boot.sh’ podczas restartu systemu.

Użyjemy tego samego skryptu, który został utworzony w powyższym przykładzie. Aby to zrobić, wystarczy dodać następujący wpis w pliku crontab:

# crontab -e@reboot /opt/scripts/run-script-on-boot.sh

Restart systemu, aby to sprawdzić:

# reboot

Metoda-3: Użycie jednostki usługi systemd

Ta metoda działa tylko w systemie systemd i jest bardzo prosta.

Aby to zrobić, musisz utworzyć skrypt startowy systemd i umieścić go w katalogu „/etc/systemd/system/”.

Oto nasz przykładowy skrypt jednostki startowej systemd:

# vi sample-on-boot-script.serviceDescription=Run a Custom Script at StartupAfter=default.targetExecStart=/opt/scripts/run-script-on-boot.shWantedBy=default.target

Po umieszczeniu skryptu jednostki w lokalizacji systemd, uruchom następujące polecenie, aby zaktualizować pliki konfiguracyjne systemd i włączyć usługę:

# systemctl daemon-reload# systemctl enable sample-on-boot-script.service

Zrestartuj system, aby to sprawdzić:

# reboot

Wskazówki bonusowe:

Jeśli chcesz uruchomić skrypt w tle, musisz dodać symbol trailing ampersand "&".

/Path/To/My_Script &

Jeśli chcesz uruchomić polecenie jako inny użytkownik, użyj następującego formatu:

su - $USER -c /Path/To/My_Script

Zakończenie

Ten samouczek krótko omawia, jak dodać niestandardowy skrypt, polecenie lub usługę podczas uruchamiania.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.