時々しか利用できないモバイルAPに接続しようとするサーバーがあります。このAPは、サーバーがこの特定のAPに接続する瞬間にダウンロードする必要がある画像を備えたカメラです。ダウンロードスクリプトを実行する必要があります(既に記述しています)。
非常にダーティなポーリングができることは知っていますが、systemdにudevブリッジのようなものはありますか?私の検索はすべて、あまり当てはまらない非常に一般的なネットワーク関連のものをもたらしています。ここで重要なのは、スクリプトの側面です。
これを投稿してから数秒後にsystemdである必要はありませんnetwork-manager
(wifi接続を管理している)を介してこれを行う必要がある場合は、...しかし、これは15.10向けで、16.04にデプロイするビューがあり、現在は14.04のUpstartでこれを行っています。
Network Managerディスパッチャースクリプトを使用して、インターフェイスのアップイベントとダウンイベントにフックできます。
Sudo touch /etc/NetworkManager/dispatcher.d/00do_stuff
Sudo chmod u+x /etc/NetworkManager/dispatcher.d/00do_stuff
スクリプトは次の行に沿って移動できます。
#!/bin/sh
if [ $1 = wlp3s0f0 -a $2 = up -a $CONNECTION_ID = wlan ]; then
# do stuff
fi
man networkmanager
は、ディスパッチャスクリプトの実行時間が長すぎると、ある時点でスクリプトが強制終了されるため、可能性がある場合は、タスクを実行するために別のスクリプトをフォークすることをお勧めします。
#!/bin/sh
if [ $1 = wlp3s0f0 -a $2 = up -a $CONNECTION_ID = wlan ]; then
(/home/user/scripts/do_stuff.sh) & disown
fi
Network Managerは、特定のイベントがトリガーされるたびに、/etc/NetworkManager/dispatcher.d
のすべてのスクリプトをアルファベット順に実行し、インターフェイスとイベントを引数として渡します。
$CONNECTION_ID
は環境を介してスクリプトで使用可能になり、この場合はman networkprofile
によって報告される正しい接続プロファイルを使用して接続されていることを確認するためにチェックされます私の場合、$CONNECTION_ID
をSSIDでチェックするとうまくいきますが、これが別の有線接続プロファイルの名前と一致した場合にどうなるかはわかりません)。