[重要安全性通知] 发现假冒 Qfinder Pro 网站。了解详情 >

本内容经过机器翻译。请参见机器翻译免责声明
切换为英语

How to Confirm Whether autorun.sh Actually Runs at Boot
如何确认 autorun.sh 是否在启动时实际运行


最后修订日期: 2026-03-31

适用产品

  • Any QNAP NAS running QTS or QuTS hero that supports custom autorun.sh scripts

场景

  • 您参考了在启动时运行您自己的应用程序并在/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在启动时以提升的权限运行。确保语法正确以避免系统不稳定。
  • 蜂鸣器确认脚本已触发,但不保证其中的每个命令都成功执行。

进一步阅读

这篇文章有帮助吗?

谢谢您,我们已经收到您的意见。

请告诉我们如何改进这篇文章:

如果您想提供其他意见,请于下方输入。

选择规格

      显示更多 隐藏更多
      open menu
      back to top