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

QNAP

Bot
Management
29 Kwiecień 2013
2 108
34
88
Taipei
www.qnap.com
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 FAQ 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