Post-up コマンドの Fedora の置き換え

Post-up コマンドの Fedora の置き換え

Fedoraはこのような機能をサポートしていますか?郵便注文する(Ubuntuのように)またはこのコマンドの他のオプションはありますか?

ネットワークインターフェイスを有効にした後でカスタムスクリプトを実行したいのですが、Fedoraでこれを管理する方法がわかりません。

post-up command

         Run command after bringing the interface up.   If  this  command
         fails then ifup aborts, refraining from marking the interface as
         configured (even though it has really been  configured),  prints
         an  error  message,  and exits with status 0.  This behavior may
         change in the future.

答え1

1つのアイデアは、次のディレクトリにスクリプトを配置することです/etc/NetworkManager/dispatcher.d。 NetworkManagerは、さまざまなネットワークイベントが発生したときにアルファベット順にスクリプトを実行します。

抜粋:マニュアルページから:

NetworkManagerは、ネットワークイベントに応答して/etc/NetworkManager/dispatcher.dディレクトリにあるスクリプトをアルファベット順に実行します。各スクリプトは(a)一般ファイルでなければなりません。 。各スクリプトは2つのパラメータを受け取ります。 1つ目はアクティブにしたばかりのデバイスのインターフェイス名、2つ目はアクションです。

マニュアルページによると、up、down、vpn-up、vpn-down、ホスト名、dhcp4-change、dhcp6-changeなどの「イベント」があります。

「up」イベントを使って欲しいことができるかどうか疑われます。このブログ投稿のタイトルは「NetworkManagerを使用してネットワークの場所に応じてスクリプトを実行する「」は、インターフェイス(eth0)の起動時に実行するシェルスクリプトを作成する方法を示しています。

たとえば(このブログ投稿から「借りた」コード):

#!/bin/sh
IF=$1
STATUS=$2
USER=justintime

wait_for_process() {
  PNAME=$1
  PID=`/usr/bin/pgrep $PNAME`
  while [ -z "$PID" ]; do
        sleep 3;
        PID=`/usr/bin/pgrep $PNAME`
  done
}

start_synergy() {
     wait_for_process nm-applet
     /bin/su $USER -c "/usr/bin/synergyc $1"
}

if [ "$IF" = "eth0" ] && [ "$STATUS" = "up" ]; then

        #LAN Subnet at work
        NETMASK="10.0.0.0/8"
        if [ -n "`/sbin/ip addr show $IF to $NETMASK`" ]; then
                ARGS="jentoo.bucklehq.com"
                start_synergy $ARGS
                exit $?
        fi

fi

この例は、目的のタスクを開始するのに十分です。

関連情報