D.24. /sbin/ifup
#! / bin / sh
################################################ ######################
# ເລີ່ມຕົ້ນ /sbin/ifup
#
# ລາຍລະອຽດ : Interface Up
#
#! / bin / sh
################################################ ######################
# ເລີ່ມຕົ້ນ /sbin/ifup
#
# ລາຍລະອຽດ : Interface Up
#
# ຜູ້ຂຽນ
#
# ອັບເດດ
#
#
# ລຸ້ນ
#
# ໝາຍ ເຫດ
#
#
#
# ຜູ້ຂຽນ
#
# ອັບເດດ
#
#
# ລຸ້ນ
#
# ໝາຍ ເຫດ
#
#
#
################################################ ######################
ຂຶ້ນ()
{
################################################ ######################
ຂຶ້ນ()
{
log_info_msg "ກຳລັງສ້າງສ່ວນຕິດຕໍ່ ${1}..."
ຖ້າລິ້ງ ip ສະແດງ $1 > /dev/null 2>&1; ຈາກນັ້ນ link_status=`ip link ສະແດງ $1`
ຖ້າ [ -n "${link_status}" ]; ແລ້ວ
ຖ້າ ! echo "${link_status}" | grep -q UP; ຫຼັງຈາກນັ້ນ, ການເຊື່ອມຕໍ່ ip ຕັ້ງຄ່າ $1
fi
fi
ອື່ນ
log_failure_msg "ອິນເຕີເຟດ ${IFACE} ບໍ່ມີຢູ່." ທາງອອກ 1
fi
ປະເມີນ_retval
}
ປ່ອຍ = "7.7"
USAGE="ການນຳໃຊ້: $0 [ -hV ] [--help] [--version] interface" VERSTR="LFS ifup, ລຸ້ນ ${RELEASE}"
ໃນຂະນະທີ່ [ $# -gt 0 ]; ເຮັດກໍລະນີ "$1" ໃນ
--ຊ່ວຍ | -h) help="y"; ແຕກ ;;
--ສະບັບ | -V) ສຽງສະທ້ອນ "${VERSTR}"; ອອກ 0 ;
-*) echo "ifup: ${1}: invalid option" >&2 echo "${USAGE}" >& 2
ທາງອອກ 2 ;
*) ແຕກ ;;
esac ເຮັດແລ້ວ
ຖ້າ [ -n "$help" ]; ຈາກນັ້ນ echo "${VERSTR}" echo "${USAGE}"
echo
cat << HERE_EOF
ifup ຖືກນໍາໃຊ້ເພື່ອນໍາເອົາການໂຕ້ຕອບເຄືອຂ່າຍ. ພາຣາມິເຕີການໂຕ້ຕອບ, ເຊັ່ນ: eth0 ຫຼື eth0:2, ຈະຕ້ອງກົງກັບສ່ວນຕໍ່ທ້າຍຂອງໄຟລ໌ຂໍ້ມູນສະເພາະຂອງສ່ວນຕິດຕໍ່, ຕົວຢ່າງ: /etc/sysconfig/ifconfig.eth0:2.
ທີ່ນີ້_EOF
ທາງອອກ 0
fi file=/etc/sysconfig/ifconfig.${1}
# ຂ້າມໄຟລ໌ສຳຮອງ
[ "${file}" = "${file%""~"}" ] || ທາງອອກ 0
. /lib/lsb/init-functions
ຖ້າ [ ! -r "${file}" ]; ແລ້ວ
log_failure_msg "ບໍ່ສາມາດນໍາໄປໃຊ້ໃນການໂຕ້ຕອບ ${1} ໄດ້! ${file} ຫາຍໄປ ຫຼືບໍ່ສາມາດເຂົ້າໄດ້." ທາງອອກ 1
fi
. $file
ຖ້າ [ "$IFACE" = "" ]; ແລ້ວ
log_failure_msg "ບໍ່ສາມາດນໍາໄປໃຊ້ໃນການໂຕ້ຕອບ ${1} ໄດ້! ${file} ບໍ່ໄດ້ກໍານົດການໂຕ້ຕອບ [IFACE ອອກຈາກ 1
fi
# ຢ່າດໍາເນີນການບໍລິການນີ້ຖ້າເລີ່ມຕົ້ນໂດຍການບູດ, ແລະ ONBOOT
# ບໍ່ໄດ້ຕັ້ງເປັນແມ່ນ
ຖ້າ [ "${IN_BOOT}" = "1" -a "${ONBOOT}" != "ແມ່ນ" ]; ແລ້ວ
ທາງອອກ 0
fi
# ເອົາມາໃຫ້ເຖິງການໂຕ້ຕອບ
ຖ້າ [ "$VIRTINT" != "ແມ່ນ" ]; ຈາກນັ້ນຂຶ້ນ ${IFACE}
fi
ສໍາລັບ S ໃນ ${SERVICE}; ເຮັດ
ຖ້າ[! -x "/lib/services/${S}" ]; ຈາກນັ້ນ MSG="\nບໍ່ສາມາດປະມວນຜົນ ${file} ໄດ້. " MSG="${MSG}ການບໍລິການ '${S} ບໍ່ຢູ່" MSG="${MSG}ຫຼືບໍ່ສາມາດດໍາເນີນການໄດ້." log_failure_msg "$MSG"
ທາງອອກ 1
ສຳເລັດແລ້ວ
ຖ້າ [ "${SERVICE}" = "wpa" ]; ຫຼັງຈາກນັ້ນ, log_success_msg; ຟີ
# ສ້າງ/ກຳນົດຄ່າສ່ວນຕິດຕໍ່ຂອງ S ໃນ ${SERVICE}; ເຮັດ
IFCONFIG=${file} /lib/services/${S} ${IFACE} ສຳເລັດແລ້ວ
# ຕັ້ງຄ່າການເຊື່ອມຕໍ່ virtual interfaces ຖ້າ [ "${VIRTINT}" == "ແມ່ນ" ]; ແລ້ວ
ຂຶ້ນ ${IFACE}
fi
# ເອົາອົງປະກອບການໂຕ້ຕອບເພີ່ມເຕີມສໍາລັບ I ໃນ $INTERFACE_COMPONENTS; do up $I; ສຳເລັດແລ້ວ
# ຕັ້ງ MTU ຖ້າຮ້ອງຂໍ. ກວດເບິ່ງວ່າ MTU ມີມູນຄ່າ "ດີ". ຖ້າທົດສອບ -n "${MTU}"; ແລ້ວ
ຖ້າ [[ ${MTU} =~ ^[0-9]+$ ]] && [[ $MTU -ge 68 ]] ; ແລ້ວສຳລັບຂ້ອຍໃນ $IFACE $INTERFACE_COMPONENTS; ເຮັດ
ip link set dev $I mtu $MTU; ສຳເລັດແລ້ວ
ອື່ນ
log_info_msg2 "MTU $MTU ບໍ່ຖືກຕ້ອງ"
fi
fi
# ກຳນົດເສັ້ນທາງ gateway ເລີ່ມຕົ້ນຖ້າຮ້ອງຂໍຖ້າ [ -n "${GATEWAY}" ]; ແລ້ວ
ຖ້າເສັ້ນທາງ ip | grep -q ເລີ່ມຕົ້ນ; ແລ້ວ
log_warning_msg "ຕັ້ງຄ່າ Gateway ແລ້ວ; ຂ້າມ." ອື່ນ
log_info_msg "ການເພີ່ມ gateway ເລີ່ມຕົ້ນ ${GATEWAY} ໃສ່ສ່ວນຕິດຕໍ່ ${IFACE}..." ip route ເພີ່ມຄ່າເລີ່ມຕົ້ນຜ່ານ ${GATEWAY} dev ${IFACE}
ປະເມີນ_retval
fi
fi
# ສິ້ນສຸດ /sbin/ifup
fi
fi
# ກຳນົດເສັ້ນທາງ gateway ເລີ່ມຕົ້ນຖ້າຮ້ອງຂໍຖ້າ [ -n "${GATEWAY}" ]; ແລ້ວ
ຖ້າເສັ້ນທາງ ip | grep -q ເລີ່ມຕົ້ນ; ແລ້ວ
log_warning_msg "ຕັ້ງຄ່າ Gateway ແລ້ວ; ຂ້າມ." ອື່ນ
log_info_msg "ການເພີ່ມ gateway ເລີ່ມຕົ້ນ ${GATEWAY} ໃສ່ສ່ວນຕິດຕໍ່ ${IFACE}..." ip route ເພີ່ມຄ່າເລີ່ມຕົ້ນຜ່ານ ${GATEWAY} dev ${IFACE}
ປະເມີນ_retval
fi
fi
# ສິ້ນສຸດ /sbin/ifup
: Nathan Coulson - [email protected] Kevin P. Fleming - [email protected]
: Bruce Dubbs - [email protected]
: Nathan Coulson - [email protected] Kevin P. Fleming - [email protected]
: Bruce Dubbs - [email protected]
: LFS 7.0
: ຕົວແປ IFCONFIG ຖືກສົ່ງໄປຫາສະຄຣິບທີ່ພົບເຫັນ
ໃນໄດເລກະທໍລີ /lib/services, ເພື່ອຊີ້ບອກເຖິງໄຟລ໌ໃດທີ່ບໍລິການຄວນມີແຫຼ່ງເພື່ອໃຫ້ໄດ້ຂໍ້ມູນສະເພາະຂອງການໂຕ້ຕອບ.
: LFS 7.0
: ຕົວແປ IFCONFIG ຖືກສົ່ງໄປຫາສະຄຣິບທີ່ພົບເຫັນ
ໃນໄດເລກະທໍລີ /lib/services, ເພື່ອຊີ້ບອກເຖິງໄຟລ໌ໃດທີ່ບໍລິການຄວນມີແຫຼ່ງເພື່ອໃຫ້ໄດ້ຂໍ້ມູນສະເພາະຂອງການໂຕ້ຕອບ.