Armadilloフォーラム

connection-recover が復活してしまう

takamura.eiji

2025年9月2日 10時56分

==========
製品型番:AG9130-C03D0
Debian/ABOSバージョン:v3.22.1-at.2
=========

connection-recover を以下のコマンドで停止しています。

# rc-service connection-recover stop
# rc-update del connection-recover default
# persist_file -d /etc/runlevels/default/connection-recover

上記コマンドで /etc/runlevels/default/connection-recover を削除しているにも関わらず
復活していることが2回ありました。※A9E 2台で発生
それ以上の調査をしていないので、曖昧で申し訳有りませんが
このディレクトリにファイルがあるということは connection-recover が起動しているという認識です。

ただ何がトリガーになっているかわからない状態です。
疑問としては以下2点になります。

・connection-recover が復活することがあるのでしょうか?
・他のコマンド等を実行することで起動させなくする方法はありますでしょうか?

なお同様に avahi-daemon も停止しているのですが、そちらは復活していないです。

コメント

佐藤です。

何点か確認させてください。
現象が発生している A9E を
"abos-ctrl make-installer" 作成した SD カードで初期化したり、
VSCode上で "Generate Installer On USB Swu" を実行して作成したインストールディスクで
初期化したりしたことはありますでしょうか。
他に、わかる範囲で構いませんので、該当のA9Eで
connection-recoverを削除する以外に、どのような操作を行ったかを教えてもらえますでしょうか。

佐藤さん
回答ありがとうございます。

> 現象が発生している A9E を
> "abos-ctrl make-installer" 作成した SD カードで初期化したり、
> VSCode上で "Generate Installer On USB Swu" を実行して作成したインストールディスクで
> 初期化したりしたことはありますでしょうか。

少なくても2回目に発生した A9E では abos-ctrl make-installer を実行しています。
"Generate Installer On USB Swu" を実行して初期はしていません。

> 他に、わかる範囲で構いませんので、該当のA9Eで
> connection-recoverを削除する以外に、どのような操作を行ったかを教えてもらえますでしょうか。

追加情報ですが abos-ctrl make-installer で作成した SD カードで初期化したところ、
connection-recover が復活しているようです。これがトリガーでしょうか?

現在その状態ですが、お伝え頂ければご指定のコマンドが実行可能です。

佐藤です。

> 追加情報ですが abos-ctrl make-installer で作成した SD カードで初期化したところ、
> connection-recover が復活しているようです。これがトリガーでしょうか?
はい、これが原因と思われます。
現状では abos-ctrl make-installer で作成した SD カードで初期化すると、
connection-recover が復活します。

少々手間なのですが、以下のようにすると復活しなくなります。
A9E に 初期化用 SD カードを刺した状態で以下を実行してください。

armadillo:~# mount /dev/mmcblk2p1 /mnt
armadillo:~# cp /mnt/installer_overrides.sh.sample /mnt/installer_overrides.sh
armadillo:~# vi /mnt/installer_overrides.sh
〜〜省略〜〜
〜〜175行目付近〜〜
        # NetworkManager does not read files with bad permissions
        chmod 600 "$CONF_FILE" \
                || error "Could not chmod $CONF_FILE"
        rm -f /target/etc/runlevel/default/connection-recover # ★この行を追加★
}

編集後、保存して vi を閉じてください。
その後 "umount /mnt" でアンマウントしてください。
以上のようにすることで、この SD カードを使用して初期化する場合は connection-recover は復活しなくなります。

参考までに、
connection-recover は有効にしておくのが良いかと思いますが、
無効にしている理由を差し支えなければ教えてください。

佐藤です。

すいません。
installer_overrides.sh の編集について訂正します。

armadillo:~# mount /dev/mmcblk2p1 /mnt
armadillo:~# cp /mnt/installer_overrides.sh.sample /mnt/installer_overrides.sh
armadillo:~# vi /mnt/installer_overrides.sh
〜〜省略〜〜
〜〜33行目付近〜〜
postinstall() {
        # このpostinstall()関数に書かれている内容はすべて消した上で
        # 以下を追加してください。
        rm -f /target/etc/runlevel/default/connection-recover
}

佐藤さん
回答ありがとうございます。
abos-ctrl make-installer が原因とのことで承知致しました。

> 無効にしている理由を差し支えなければ教えてください。
閉域網を利用するので、再接続処理は独自実装しております。

佐藤です。

> > 無効にしている理由を差し支えなければ教えてください。
> 閉域網を利用するので、再接続処理は独自実装しております。
承知しました。
もし ping による 8.8.8.8 への導通確認が問題なのでしたら、
"/etc/atmark/connection-recover.conf.example" ファイルを
"/etc/atmark/connection-recover.conf" とリネームしていただき、
そのファイル内の "PING_DEST_IP" の値を閉域網で到達可能なアドレスにしていただくと良いかと思います。

ご指摘に習い installer_overrides.sh を修正しましたが、
connection-recover は消えていませんでした。意図した動作になっておりません。
参考までに以下 installer_overrides.sh の全文です。

postinstall() {
          # https://armadillo.atmark-techno.com/forum/armadillo/27369#comment-21081
          rm -f /target/etc/runlevel/default/connection-recover
}
 
send_log() {
          # https://armadillo.atmark-techno.com/forum/armadillo/27104
          : "This function is called after aggregating logs for archival"
          local LOG_FILE="$1"
 
          if [ -n "$USER_MOUNT" ]; then
                          mount /dev/mmcblk2p2 "$USER_MOUNT"
                          mkdir -p $USER_MOUNT/logs
                          cp $LOG_FILE $USER_MOUNT/logs/GW_setup_${SN}.log
                          umount "$USER_MOUNT"
          fi
}

SD カードでインストールを行うと以下のログがでているため postinstall は実行されていると思われます。

Running postinstall command

何が原因か判りますでしょうか?

佐藤です。

> ご指摘に習い installer_overrides.sh を修正しましたが、
> connection-recover は消えていませんでした。意図した動作になっておりません。
> 参考までに以下 installer_overrides.sh の全文です。
>

> postinstall() {
>           # https://armadillo.atmark-techno.com/forum/armadillo/27369#comment-21081
>           rm -f /target/etc/runlevel/default/connection-recover
> }
> 
> send_log() {
>           # https://armadillo.atmark-techno.com/forum/armadillo/27104
>           : "This function is called after aggregating logs for archival"
>           local LOG_FILE="$1"
> 
>           if [ -n "$USER_MOUNT" ]; then
>                           mount /dev/mmcblk2p2 "$USER_MOUNT"
>                           mkdir -p $USER_MOUNT/logs
>                           cp $LOG_FILE $USER_MOUNT/logs/GW_setup_${SN}.log
>                           umount "$USER_MOUNT"
>           fi
> }
> 

> SD カードでインストールを行うと以下のログがでているため postinstall は実行されていると思われます。
>

> Running postinstall command
> 

>
> 何が原因か判りますでしょうか?
大変申し訳ありません。
"rm -f /target/etc/runlevel/default/connection-recover"
ではなく
"rm -f /target/etc/runlevels/default/connection-recover"
の間違いでした。
修正して再度試してみてもらえますでしょうか。

佐藤さま
回答ありがとうございました。
試してみたところ connection-recover は復活せずに意図した動作となりました。