Gentoo Linux 2005.0 x86 手冊[48]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

5. 新增功能

5.a. 標準函數連結

有四個定義好的函數在 start/stop 動作時會啟動。這些函數開頭都是網路介面的名稱,以便控制多個網路介面。

preup 和 predown 函數應該回傳 0,表示接下來的介面設定或取消設定可以繼續,如果 preup 回傳不為 0 的數值,會結束網路介面的設定。如果 predown 回傳不為 0 的數值,將會不允許繼續這個網路介面的取消設定。

postup 及 postdown 函數會忽略回傳值,因為如果他們有錯誤的話,也沒有什麼要做的。

${IFACE} 是設成要啟動/關閉的網路介面。${IFVAR} 是把 ${IFACE} 轉換成 bash 可以接受的變數名稱。

原始碼 1: pre/post up/down function 範例

preup() {
  # 在啟動前測試網路線是否已接上。
  # 這只在某些網路卡有作用,並且需要安裝 mii-diag 套件
  if mii-tool ${IFACE} 2> /dev/null | grep -q 'no link'; then
    ewarn "No link on ${IFACE}, aborting configuration"
    return 1
  fi

  # 在啟動前測試網路線是否已接上。
  # 這只在某些網路卡有作用,並且需要安裝 ethtool 套件
  if ethtool ${IFACE} | grep -q 'Link detected: no'; then
    ewarn "No link on ${IFACE}, aborting configuration"
    return 1
  fi

  # 記得回傳 0 代表成功
  return 0
}

predown() {
  # script 中預設的是測試是否使用 NFS 當作根目錄,在這種情況不允許停止網路介面。
  # 注意如果你指定一個 predown() 函數,會蓋掉這個判斷。底下就是這個
  #script,如果你還需要他的話...
  if is_net_fs /; then
    eerror "root filesystem is network mounted -- can't stop ${IFACE}"
    return 1
  fi

  # 記得回傳 0 代表成功
  return 0
}

postup() {
  # 這個函數的用處例如說註冊動態 DNS 服務。
  # 另一個例子是在網路卡啟動後傳送/接收郵件。
       return 0
}

postdown() {
  # 這個函數只是為了完整放在這裡...
  # 我還沒想到什麼巧妙的事情可以做的 ;-)
  return 0
}

5.b. 無線網路函數連結

注意: 這對 WPA Supplicant 不能工作 - 但是 ${ESSID}${ESSIDVAR} 變數在 postup() 函數內可以用。

這裡定義兩個結合函數在相關的函數附近被呼叫。這些函數開頭都是網路介面的名稱,以便控制多個網路介面。

preassociate 函數應該回傳 0,表示接下來的介面設定或取消設定可以繼續,如果 preup 回傳不為 0 的數值,會結束網路介面的設定。如果 predown 回傳不為 0 的數值,將會不允許繼續這個網路介面的取消設定。

postassociate 函數會忽略回傳值,因為如果他們有錯誤的話,也沒有什麼要做的。

${ESSID} 是設成你連線 AP 的 ESSID。${ESSIDVAR}${ESSID} 轉換成 bash 可以接受的變數名稱。

原始碼 2: pre/post 結合函數

preassociate() {
  # 底下加了 leap_user_ESSID 及 leap_pass_ESSID 兩個變數
  # 當這些都對你要連線的 ESSID 設好後,執行 CISCO LEAP script

  local user pass
  eval user=\"\$\{leap_user_${ESSIDVAR}\}\"
  eval pass=\"\$\{leap_pass_${ESSIDVAR}\}\"

  if [[ -n ${user} && -n ${pass} ]]; then
    if [[ ! -x /opt/cisco/bin/leapscript ]]; then
      eend "For LEAP support, please emerge net-misc/cisco-aironet-client-utils"
      return 1
    fi
    einfo "Waiting for LEAP Authentication on \"${ESSID//\\\\//}\""
    if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then
      ewarn "Login Failed for ${user}"
      return 1
    fi
  fi

  return 0
}

postassociate() {
  # 這個函數只是為了完整放在這裡...
    # 我還沒想到什麼巧妙的事情可以做的 ;-)
	
  return 0
}

注意: ${ESSID}${ESSIDVAR} 在 predown() 還有 postdown() 函數不能使用

6. 網路管理

6.a. 網路管理

如果你和你的電腦經常在移動,你可能會沒有網路線或無線網路可以用。而且,你可能希望在你插上網路線或是找到無線網路時網路自動啟動。

這裡你可以找到一些幫你完成的工具。

注意: 這份文件只介紹 ifplugd,但時還有其他像 quickswitch 的工具你可以參考。

本文关键:Gentoo Linux 2005.0 x86 手冊
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top