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.