FAQ Jak potwierdzić, czy autorun.sh faktycznie uruchamia się przy starcie?

Odpowiednie produkty

  • Dowolny serwer QNAP NAS z systemem QTS lub QuTS hero obsługujący niestandardowe skrypty autorun.sh



Scenariusz

  • Zapoznałeś się z Running Your Own Application at Startup i utworzyłeś skrypt autorun.sh w katalogu /tmp/config z uprawnieniami do wykonywania (-rwxr-xr-x).
  • Funkcja autorun jest włączona w Control Panel > Hardware.
  • Po ponownym uruchomieniu oczekiwane działania nie występują. Nie jest jasne, czy:
    • autorun.sh nigdy nie został uruchomiony, czy też
    • autorun.sh został uruchomiony, ale niektóre polecenia zakończyły się niepowodzeniem z powodu różnic w czasie lub środowisku.
  • Ręczne uruchomienie tego samego skryptu przez SSH działa zgodnie z oczekiwaniami, co utrudnia identyfikację przyczyny.



Rozwiązanie
Najbardziej bezpośrednim sposobem potwierdzenia, że autorun.sh uruchamia się podczas rozruchu, jest dodanie polecenia brzęczyka i wpisu do dziennika na początku skryptu.

  • Jeśli po uruchomieniu usłyszysz sygnał dźwiękowy, oznacza to, że autorun.sh został uruchomiony.
  • Jeśli usłyszysz sygnał dźwiękowy, ale główna funkcjonalność nie działa, polecenia znajdujące się dalej w skrypcie mogą kończyć się niepowodzeniem, ponieważ wymagany interfejs sieciowy, system plików lub usługa nie są gotowe.
Wymagania wstępne
  • autorun.sh jest przechowywany w /tmp/config/autorun.sh.
  • Plik jest wykonywalny: -rwxr-xr-x.
  • Funkcja autorun jest włączona w Control Panel > Hardware.
Aby to zaimplementować, najpierw zredukuj autorun.sh do minimalnej, obserwowalnej wersji:

Kod:
#!/bin/bash

# Minimalny dowód wykonania
echo "autorun.sh started at $(date)" >> /tmp/autorun.log
hal_app --se_buzzer enc_id=0,mode=0

Polecenia brzęczyka

  • Krótki sygnał dźwiękowy: hal_app --se_buzzer enc_id=0,mode=0
  • Długi sygnał dźwiękowy: hal_app --se_buzzer enc_id=0,mode=1
Zalecane użycie:

  • Umieść dwa krótkie sygnały dźwiękowe na samym początku: wskazuje to, że autorun.sh został uruchomiony, oraz dwa krótkie sygnały dźwiękowe na końcu autorun.sh.

Kod:
#!/bin/bash

echo "autorun.sh started at $(date)" >> /tmp/autorun.log
hal_app --se_buzzer enc_id=0,mode=0
hal_app --se_buzzer enc_id=0,mode=0

# Twoja rzeczywista konfiguracja poniżej
sleep 5
# ... twoje polecenia tutaj ...

echo "autorun.sh completed at $(date)" >> /tmp/autorun.log
hal_app --se_buzzer enc_id=0,mode=0
hal_app --se_buzzer enc_id=0,mode=0
Plain textCopy
Interpretacja wyników
Uwaga: Systemy QNAP NAS emitują sygnały dźwiękowe w określonych momentach podczas normalnego rozruchu:

  • Sygnał włączenia zasilania: Pojedynczy krótki sygnał dźwiękowy po włączeniu zasilania (bardzo wcześnie podczas rozruchu, przed uruchomieniem autorun.sh)
  • Sygnał uruchamiania systemu: Pojedynczy krótki sygnał dźwiękowy, gdy system operacyjny rozpoczyna ładowanie (przed uruchomieniem autorun.sh)
  • Sygnał gotowości systemu: Zazwyczaj długi sygnał dźwiękowy po zainicjowaniu systemu operacyjnego i uruchomieniu usług (po uruchomieniu autorun.sh )
Aby odróżnić sygnały dźwiękowe autorun.sh od sygnałów dźwiękowych rozruchu systemu, możesz dodać różne kombinacje sygnałów dźwiękowych w swoim autorun.sh podczas etapu debugowania.

Ponadto możesz również sprawdzić /tmp/autorun.log, aby zweryfikować, czy autorun.sh został wykonany.



Ostrzeżenia

  • autorun.sh uruchamia się z podwyższonymi uprawnieniami podczas rozruchu. Upewnij się, że składnia jest poprawna, aby uniknąć niestabilności systemu.
  • Brzęczyk potwierdza, że skrypt został uruchomiony, ale nie gwarantuje, że każde polecenie w nim zawarte zakończyło się sukcesem.



Dalsze informacje

 
Ostatnio edytowane: