機械翻訳について

4 ネットワーク・イベント発生時のスクリプトの実行

NetworkManager-dispatcherが実行するスクリプトを指定することで、ネットワーク・イベントに応答するようにシステムを構成できます。 たとえば、デバイスの起動時にリモート・ファイル・システムをマウントしたり、デバイスが接続を失ったときに通知を送信するには、スクリプトを使用します。

  1. 実行可能スクリプトを/etc/NetworkManager/dispatcher.d/またはそのサブディレクトリの1つに保存します。
    NetworkManager-dispatcherは、スクリプトを実行すると、2つの引数をスクリプトに渡します:
    • アクションが発生したインタフェースの名前。
    • 発生したアクション。

    また、ネットワークに関連する環境変数をスクリプトで使用できます。

    スクリプトで使用できるアクションと環境変数の完全なリストは、NetworkManager-dispatcher (8)マニュアル・ページを参照してください。

    /etc/NetworkManager/dispatcher.d/内のサブディレクトリは、スクリプトの特別な処理を提供します。

    サブディレクトリ 詳細
    pre-up.d pre-upまたはvpn-pre-upアクションに応答するスクリプトを、このサブディレクトリに配置するか、このスクリプトにシンボリック・リンクを作成します。
    pre-down.d pre-downまたはvpn-pre-downアクションに応答するスクリプトを、このサブディレクトリに配置するか、このスクリプトにシンボリック・リンクを作成します。
    no-wait.d アクションが発生したときにスクリプトをすぐに実行する場合は、スクリプトからこのサブディレクトリへのシンボリック・リンクを作成します。 これらのスクリプトはパラレルに実行され、すでに実行されているスクリプトが終了するまで待機しません。

    ノート:

    システムに構成されているSELinuxポリシーおよびセキュリティ・コンテキストによっては、スクリプトが/etc/NetworkManager/dispatcher.d/のサブディレクトリへのシンボリック・リンクである場合、SELinuxがスクリプトの実行を妨げることがあります。 スクリプトが実行されるようにするには、スクリプトをサブディレクトリに直接配置するか、SELinux構成を更新します。 詳細は、『Oracle Linux: SELinuxの管理』を参照してください。

    NetworkManager-dispatcher/etc/NetworkManager/dispatcher.d/のスクリプトをアルファベット順に実行するので、スクリプトの実行順序を強制するために、ファイル名の先頭に数字を付けることができます。 たとえば: /etc/NetworkManager/dispatcher.d/10-myscript

  2. ファイルの所有権と権限を設定します。
    必要な設定は次のとおりです。
    1. ファイルの所有者をrootに変更します。
      sudo chown root /etc/NetworkManager/dispatcher.d/10-myscript
    2. グループなどの書込みアクセスを無効にし、setuidを無効にします。
      sudo chmod 0700 /etc/NetworkManager/dispatcher.d/10-myscript
ネットワーク・アクションが発生すると、NetworkManager.serviceNetworkManager-dispatcher.serviceを起動し、次のパラメータに従って/etc/NetworkManager/dispatcher.d/のスクリプトを実行します:
  • 一度に1つのスクリプトが実行されます。
  • スクリプトは、ネットワーク・イベントが発生する順序に基づいて順番に実行されます。
  • ディスパッチャ・サービスがスクリプトをキューに入れた後は、後のアクションによってスクリプトが不要になった場合でも、スクリプトは常に実行されます。
  • NetworkManagerは、実行時間が長すぎる場合にスクリプトを終了します。