Scenariusz
- Korzystasz z instrukcji Running Your Own Application at Startup i utworzyłeś skrypt
autorun.shw katalogu/tmp/configz uprawnieniami wykonywalnymi (-rwxr-xr-x). - Funkcja autorun jest włączona w Panelu sterowania > Sprzęt.
- Po ponownym uruchomieniu oczekiwane operacje nie są wykonywane. Nie jest jasne, czy:
autorun.shnie został w ogóle wywołany, czyautorun.shzostał uruchomiony, ale niektóre polecenia nie powiodły się z powodu problemów z synchronizacją lub różnic w środowisku.
- Ręczne uruchomienie tego samego skryptu przez SSH działa zgodnie z oczekiwaniami, co utrudnia zidentyfikowanie pierwotnej przyczyny.
Rozwiązanie
Najbardziej bezpośrednim sposobem potwierdzenia, że
autorun.sh uruchamia się podczas rozruchu, jest dodanie polecenia buzzera oraz wpisu do logu na początku skryptu.- Jeśli po rozruchu słyszysz sygnał dźwiękowy,
autorun.shzostał wywołany. - Jeśli słyszysz sygnał dźwiękowy, ale główna funkcjonalność nie działa, polecenia w dalszej części skryptu mogą nie powodzić się, ponieważ wymagany interfejs sieciowy, system plików lub usługa nie jest jeszcze gotowa.
autorun.shjest przechowywany w/tmp/config/autorun.sh.- Plik jest wykonywalny:
-rwxr-xr-x. - Funkcja autorun jest włączona w Panelu sterowania > Sprzęt.
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 buzzera
- Krótki sygnał:
hal_app --se_buzzer enc_id=0,mode=0 - Długi sygnał:
hal_app --se_buzzer enc_id=0,mode=1
Zalecane użycie:
- Umieść dwa krótkie sygnały na samym początku: oznacza to, że
autorun.shsię uruchomił, oraz dwa krótkie sygnały na końcu skryptu 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 właściwa 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
Interpretacja wyników
Uwaga: Systemy QNAP NAS emitują sygnały dźwiękowe w określonych momentach podczas normalnego rozruchu:
- Sygnał włączenia: Pojedynczy krótki sygnał po podłączeniu zasilania (bardzo wcześnie w trakcie rozruchu, przed uruchomieniem autorun.sh)
- Sygnał uruchamiania systemu: Pojedynczy krótki sygnał, gdy system operacyjny zaczyna się ładować (przed uruchomieniem autorun.sh)
- Sygnał gotowości systemu: Zwykle długi sygnał po zainicjowaniu systemu operacyjnego i uruchamianiu usług (po uruchomieniu autorun.sh)
Aby odróżnić sygnały buzzera z autorun.sh od systemowych sygnałów rozruchu, możesz dodać inne kombinacje sygnałów w skrypcie autorun.sh na etapie debugowania.
Ponadto możesz również sprawdzić plik /tmp/autorun.log, aby potwierdzić, czy autorun.sh został wykonany.
Ostrzeżenia
autorun.shjest uruchamiany z podwyższonymi uprawnieniami podczas rozruchu. Upewnij się, że składnia jest poprawna, aby uniknąć niestabilności systemu.- Buzzer potwierdza, że skrypt został wywołany, ale nie gwarantuje, że każde polecenie wewnątrz niego zakończyło się powodzeniem.