此頁面為機器翻譯版本,請參閱機器翻譯免責聲明。
切換為English
如何確認 autorun.sh 是否在啟動時實際執行
最後修訂日期:
2026-03-31
適用產品
- Any QNAP NAS running QTS or QuTS hero that supports custom
autorun.shscripts
情境
- 您參考了在啟動時運行您自己的應用程式並在
/tmp/config下建立了一個具有可執行權限的autorun.sh腳本 (-rwxr-xr-x)。 - 在控制台 > 硬體中啟用了自動運行功能。
- 重新啟動後,預期的動作未發生。尚不清楚是否:
autorun.sh從未被觸發,或autorun.sh已運行,但由於時間或環境差異,某些命令失敗。
- 透過 SSH 手動執行相同的指令碼可正常運作,這使得根本原因更難識別。
解決方案
確認autorun.sh在啟動時運行的最直接方法是在腳本的開頭添加蜂鳴器命令和日誌條目。
- 如果在啟動後聽到蜂鳴聲,則
autorun.sh已被觸發。 - 如果聽到蜂鳴聲但主要功能未正常運作,則可能是指令碼中的後續命令因所需的網路介面、檔案系統或服務尚未準備好而失敗。
先決條件
autorun.sh儲存在/tmp/config/autorun.sh。- 檔案是可執行的:
-rwxr-xr-x。 - 在控制台 > 硬體中啟用了自動運行功能。
要實現此功能,首先將autorun.sh縮減為最小可觀察版本:
#!/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 - 長嗶聲:
hal_app --se_buzzer enc_id=0,mode=1
建議使用:
- 在開始時放置兩個短嗶聲:表示
autorun.sh已開始,並在autorun.sh結束時放置兩個短嗶聲。
#!/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
# 您的實際配置如下
sleep 5
# ... 您的命令在此 ...
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解讀結果
注意:QNAP NAS 系統在正常啟動過程中的特定點會發出嗶聲:
- 開機嗶聲:通電時發出單短嗶聲(啟動初期,在 autorun.sh 執行之前)
- 系統啟動嗶聲 單短嗶聲當作業系統開始載入時(在 autorun.sh 執行之前)
- 系統準備嗶聲:通常在作業系統初始化後,服務開始時發出長嗶聲(在 autorun.sh 執行之後)
為了區分 autorun.sh 嗶聲與系統啟動嗶聲,您可以在除錯階段於 autorun.sh 中新增不同的嗶聲組合。
此外,您還可以查看/tmp/autorun.log 以檢查autorun.sh是否執行。
警告
autorun.sh在啟動過程中以提升的權限運行。確保語法正確以避免系統不穩定。- 蜂鳴器確認指令碼已觸發,但不保證其中的每個命令都成功執行。