2

私の年老いた父はubuntu-gnomeを使用しています。彼は静的 IP アドレスを持っていません。リモート管理を実行するには、彼の IP を知る必要があります。dyndns の無料アカウント (adsl モデムの構成) を使用していましたが、これは数日で機能しなくなります。

彼がログインするたびにスクリプトを実行して、自分の IP を私の Web サイトに公開したいと考えています。起動時にスクリプトを実行しようとしましたが、ネットワークが利用できません。ネットワークを起動するのはgnome 3だそうですが、gnome 3についてはよくわかりません。

ネットワークが利用可能になったらすぐにスクリプトを自動的に実行するにはどうすればよいですか?

4

2 に答える 2

3

これに対するエレガントではない解決策の1つは、スクリプトを彼のcronに入れて、X分ごとに実行することです:)

私のものを見ると、あなたが望むことをすると思う/etc/NetworkManager/フォルダがあるようです。dispatcher.dbash/perl/python w/e スクリプトで実験して、パーミッションを適切に設定してください。UUID はsystem-connections/フォルダー内にあります。詳細については、 を参照してくださいman networkmanager

編集:私が見つけたものを見てください: https://askubuntu.com/questions/13963/call-script-after-connecting-to-a-wireless-network。これはまさにあなたが望むもののようです。

于 2014-05-05T09:15:52.683 に答える
1

最も簡単な方法は、別の動的 DNS サービスを使用することです。自分の物を使っていました。cronに putcurlまたはwgetcommand するか、そのコマンドを定期的に呼び出す systemd サービスを作成することもできます。ターゲットとして、ログで IP を確認できる Web サーバーでマシンを使用する必要があります。

ネットワークを接続するのは Gnome ではなく、 というシステム サービスNetworkManagerです。可能であれば、起動時に接続を試みます。ワイヤレス信号を待つ場合もあれば、ユーザーパスワードを待つ場合もあります。私は最近、Fedora では NetworkManager が systemd を適切に実装していることを確認しましたnetwork-online.targetが、他のディストリビューションではまだ修正されていない可能性があります。アップストリームのバグ レポートを参照してください。

https://bugzilla.gnome.org/show_bug.cgi?id=728965

起動直後にシステム サービスを実行する場合は、次を使用する必要があります。

[Unit]
...
Wants=network-online.target
After=network-online.target

nm-online適切な時間内に接続が確立されると期待できる場合は、最初にネットワーク接続を待機するように呼び出すスクリプトを実行することもできます。それ以外の場合は、タイムアウトになります。このようなスクリプトは、ユーザー セッションを含む任意の環境から実行できます。

そして、すでに述べたよう/etc/NetworkManager/dispatcher.dに、ネットワーク構成の変更時に呼び出されるスクリプトを に配置することができます。そのようなスクリプトは、接続アップイベントをフィルター処理して、通知スクリプトを開始することができます。

于 2014-05-07T14:20:44.903 に答える