Wiedza Uruchamianie własnej aplikacji przy starcie systemu

Produkty objęte:​


  • Wszystkie serie NAS

Niektóre zaawansowane zastosowania serwera NAS mogą wymagać uruchamiania niestandardowych aplikacji podczas rozruchu. Mimo że serwery QNAP NAS są oparte na systemie Linux, nie można używać typowych linuksowych metod uruchamiania aplikacji przy starcie: domyślne pliki konfiguracyjne są resetowane przy każdym uruchomieniu.

  • Wymagane umiejętności
  • Metoda oparta na MTD
    • Ręczna edycja pliku autorun.sh
    • Edycja autorun.sh: skrypt ułatwiający edycję autorun.sh
    • Użycie skryptu „init" do zamontowania pamięci flash
    • Zezwalanie na uruchamianie autorun.sh podczas startu

Wymagane umiejętności​


  • musisz umieć logować się zdalnie przez SSH (np. używając SSH PuTTY)
  • musisz wiedzieć, jak edytować pliki za pomocą nano, vi lub przez SFTP (np. używając WinSCP)

Metoda oparta na MTD​


Autorun.sh to skrypt, który będzie wykonywany przy każdym uruchomieniu modeli TS-x09, TS-x19 i TS-x39. Edycja tego pliku umożliwia uruchamianie własnych programów lub nadpisywanie plików konfiguracyjnych własnymi kopiami.

Ręczna edycja autorun.sh​


  1. Zaloguj się do swojego urządzenia QNAP przez SSH, na przykład używając Putty
  2. Opcjonalnie: zainstaluj nano; użyj ipkg install nano i edytuj za pomocą nano zamiast vi
  3. Zamontuj ramblock konfiguracyjny, znajdując swój konkretny model poniżej:
    • Wszystkie serwery NAS Intel i AMD oparte na HAL:

      Uwaga: Począwszy od QTS 4.3.3 wymagane jest włączenie obsługi autorun.sh w Panel sterowania -> Sprzęt -> Ogólne: Uruchom procesy startowe zdefiniowane przez użytkownika (autorun.sh)
      • QTS 5.x

        sudo -i
        mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/config
      • QTS 4.x
        mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/config
    • TS-212P3, TS-230: Zamontuj ramblock konfiguracyjny /dev/mmcblk0p5:
      mount -t ext2 /dev/mmcblk0p5 /tmp/config
    • TS-269L: Zamontuj ramblock konfiguracyjny /dev/sdc6:
      mount -t ext2 /dev/sdc6 /tmp/config
    • TS-439, TS-509, TS-639, TS-809, TS-809U (x86): Zamontuj ramblock konfiguracyjny /dev/sdx6:
      mount -t ext2 /dev/sdx6 /tmp/config
    • TS-109, TS-109P, TS-110, TS-119, TS-209, TS-209P, TS-212, TS-219, TS-409 (Marvell ARM), TS-412, TS-419P: Zamontuj ramblock konfiguracyjny /dev/mtdblock5:

      Uwaga: W modelu TS-219P II może być konieczne użycie ext4 zamiast ext2

      mount -t ext2 /dev/mtdblock5 /tmp/config
    • TS-201: Zamontuj ramblock konfiguracyjny /dev/mtdblock4:
      mount -t ext2 /dev/mtdblock4 /tmp/config

Utwórz/edytuj plik /tmp/config/autorun.sh.​


  1. Edytuj autorun.sh za pomocą vi, używając polecenia # vi /tmp/config/autorun.sh, a następnie wejdź w tryb edycji, naciskając a
    1. Edytuj, co potrzebujesz
    2. Wyjdź z trybu edycji: naciśnij ESC
    3. Zapisz i wyjdź: x
  2. Lub edytuj autorun.sh za pomocą komputera stacjonarnego i np. SFTP
  3. Upewnij się, że /tmp/config/autorun.sh jest wykonywalny, używając polecenia # chmod +x /tmp/config/autorun.sh
  4. WAŻNE: Odmontuj zamontowaną partycję flash za pomocą polecenia # umount /tmp/config

editautorun.sh: skrypt ułatwiający edycję autorun.sh​


Jeśli regularnie edytujesz ten plik, możesz zaoszczędzić czas, tworząc skrypt powłoki (np. editautorun.sh) automatyzujący ten proces. Skrypt można wywoływać, umieszczając go w ścieżce środowiska, dodając jego folder do ścieżki lub wywołując go za pomocą aliasu.

Zawartość skryptu:

Wszystkie serwery NAS Intel i AMD oparte na HAL używają...

Kod:
mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/config
touch /tmp/config/autorun.sh
chmod +x /tmp/config/autorun.sh
$EDITOR /tmp/config/autorun.sh
umount /tmp/config

Wszystkie serwery NAS oparte na AL (TS-x31+ i TS-x31X) oraz TS-x31 używają...

Kod:
ubiattach -m 6 -d 2
/bin/mount -t ubifs ubi2:config /tmp/config
vi /tmp/config/autorun.sh
chmod +x /tmp/config/autorun.sh
echo .
echo "unmounting /tmp/config..."
umount /tmp/config
ubidetach -m 6

TS-230 używa...

Kod:
mount -t ext2 /dev/mmcblk0p5 /tmp/config
vi /tmp/config/autorun.sh
chmod +x /tmp/config/autorun.sh
echo .
echo "unmounting /tmp/config..."
umount /tmp/config

TAS-x68, TS-x28 używają...

Kod:
/bin/mount -t ext4 /dev/mmcblk0p7 /tmp/config
vi /tmp/config/autorun.sh
chmod +x /tmp/config/autorun.sh
echo .
echo "unmounting /tmp/config..."
umount /tmp/config

TS-439, TS-509, TS-639, TS-809, TS-809U (x86) używają...

Kod:
mount -t ext2 /dev/sdx6 /tmp/config
vi /tmp/config/autorun.sh
chmod +x /tmp/config/autorun.sh
echo .
echo "unmounting /tmp/config..."

Dla TS-109, TS-109P, TS-119, TS-209, TS-209P, TS-219, TS-412, TS-409 (Marvell ARM) użyj...

Kod:
mount -t ext2 /dev/mtdblock5 /tmp/config
vi /tmp/config/autorun.sh
chmod +x /tmp/config/autorun.sh
echo .
echo "unmounting /tmp/config..."
umount /tmp/config

Dla TS-201 użyj...

Kod:
mount -t ext2 /dev/mtdblock4 /tmp/config
vi /tmp/config/autorun.sh
chmod +x /tmp/config/autorun.sh
echo .
echo "unmounting /tmp/config..."
umount /tmp/config

Użycie skryptu „init" do zamontowania pamięci flash​


Interfejs graficzny QNAP umożliwia podgląd zawartości autorun.sh. W wersji V4.5.1.1540 na TS-831XU-RP GUI robi to w następujący sposób:

Kod:
/etc/init.d/init_disk.sh mount_flash_config
(displays /tmp/nasconfig_tmp/autorun.sh)
/etc/init.d/init_disk.sh umount_flash_config

Używając tych poleceń, możesz utworzyć/edytować plik „autorun.sh" w podanej lokalizacji.

Zezwalanie na uruchamianie autorun.sh podczas startu​


Po zakończeniu pracy nad autorun.sh nie zapomnij włączyć opcji zezwalającej na uruchamianie autorun.sh podczas uruchamiania systemu.

5862759311cce4ddb52de03213208869.png