Armadilloフォーラム

システム起動時、LTE接続後にサービスを起動したい

urasue

2020年12月17日 18時11分

お世話になっております。
浦末です。

システム起動時、LTEが接続できた後にサービスを実行するようにしたいです。
下記の記事を参考に、試してみましたが、有線LANが繋がっている時は
うまくいきませんでした。

有線LANが繋がっていても、LTE接続を待機できる方法は無いでしょうか?

■SystemdのUnitファイルを作成し、起動順序を持たせて自作のプログラムを起動させる方法
https://armadillo.atmark-techno.com/forum/armadillo/3345

サービスの設定は、下記の通りです。
/etc/systemd/system/hogehoge.service

[Unit]
Description = parking system daemon
After = systemd-networkd-wait-online.service
[Service]
ExecStart = /root/hoge.sh
Restart = no
Type = simple
[Install]
WantedBy = multi-user.target

デフォルトゲートウェイは、LTEのppp0としています。
有線LAN側は、デフォルトゲートウェイを無効にしております。

コメント

at_syunya.ohshio

2020年12月21日 10時55分

大塩です。

> システム起動時、LTEが接続できた後にサービスを実行するようにしたいです。
> 下記の記事を参考に、試してみましたが、有線LANが繋がっている時は
> うまくいきませんでした。
>
> 有線LANが繋がっていても、LTE接続を待機できる方法は無いでしょうか?

/etc/network/if-up.d/ を使用する方法はどうでしょうか。

/etc/network/if-up.d/ は、インターフェース起動時に直下のスクリプトを自動実行する機能があります。
ここに3G/LTE接続時にのみ動作するスクリプトを設置することで、実現可能かと思います。
スクリプト名は任意で問題ありません。

以下、設置するスクリプトのサンプルコードです。

#!/bin/bash
 
[ "$IFACE" != "ppp0" ] && exit 0
 
touch /home/atmark/test.txt

以上です。

お世話になっております。
浦末です。

教えて頂いた方法で自動起動することができました。
ありがとうございました。