autorun.shは正しく表示されるが、起動時に実行されない

TS-451+でautorun.shを設定し、すべて正しく見えるのですが、実行されません。

実際のautorun.shを(/tmp/configをマウントして)確認すると、以下のようになっています:

-rwxr-xr-x 1 admin administrators 356 2026-03-20 08:09 autorun.sh\*

drwx------ 2 admin administrators 12288 2010-01-10 23:41 lost+found/

-rw-r–r-- 1 admin administrators 11700 2026-03-20 07:47 smb.conf

-rw-r–r-- 1 admin administrators 9 2026-03-20 07:47 smb.conf.cksum

-rw-r–r-- 1 admin administrators 37 2026-03-20 07:38 system.map.key

-rw-r–r-- 1 admin administrators 11401 2026-03-20 08:12 uLinux.conf

ControlPanel→Hardwareで確認すると

私には正しく見えます。私がやりたいことは、sshログインメニューをオフにし、いくつかの環境変数を設定し、デフォルトルートをUSB QNAP 5Gbpsイーサネットアダプターに設定することです。同じコマンド群は、sshセッションからrootで実行すると完璧に動作しますが、起動時には実行されません。ネットワークやファイルシステムがすべてマウントされる前にautorunが実行される可能性を考え、遅延も追加しました。

この問題を解決するアドバイスをいただけると幸いです。

SSHログインメニューはGUIでオフにできます

autorun.shは起動時に実行されるように設定されていますか?(設定はスクリーンショットのポップアップで隠れています)

それを表示していなくてすみませんが、有効になっています。

そのメニュー項目をGUIで探してみます。

それでも、ネットワークルーティングを設定するために、毎回起動後にautoexec(自動実行ファイル)を実行する必要があります。なぜかQNAPは、USBイーサネット(USB ethernet)経由で自動的にルーティングしてくれません。これが唯一接続されているNIC(ネットワークインターフェースカード)なのにです。そのため、家のClass Cネットワークとしか通信できません。なぜ自動実行されないのか分かりません。

ここにあります

@tangential さん、autorun.sh の出力(stdout と stderr の両方)をログファイルにキャプチャして、後でログを確認して問題を調べてみてください。

これを行うには、ハッシュバン行の直後に次の新しい行を autorun.sh に挿入します:

exec > /var/log/autorun.log 2>&1

ありがとうございます!今テストしています!

テストしました。どうやらその時点では eth4 はまだアクティブになっていないようです。スクリプト内の遅延をもっと長くする必要があるのでしょうか?今は60秒にしていますが、もしかしたら180秒にしてみるべきでしょうか?

調べた結果は以下の通りです:

[admin@NAS0ECB0C ~]# cd /var/log

[admin@NAS0ECB0C log]# ls -l au*

-rw-r–r-- 1 admin administrators 26 2026-03-20 16:22 autorun.log

[admin@NAS0ECB0C log]# cat autorun.log

デバイス「eth4」が見つかりません

[admin@NAS0ECB0C log]# ifconfig eth4

eth4 Link encap:Ethernet HWaddr 24:5E:BE:81:62:26

      inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0

      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

      RX packets:9574 errors:0 dropped:23 overruns:0 frame:0

      TX packets:3702 errors:0 dropped:0 overruns:0 carrier:0

      collisions:0 txqueuelen:1000

      RX bytes:1889384 (1.8 MiB)  TX bytes:3006272 (2.8 MiB)

はい、もしくはループを作成して、見つかったときだけ処理を進める方法もあります。:nerd_face:

あなたのスクリプトは ip コマンドで eth4 にアクセスしようとしていますが、後で ifconfig で eth4 を確認しています。スクリプトで eth4 をチェックする際に関係があるかもしれません。

autorun.sh が実際に起動時に実行されているか確認する方法 | QNAP