/etc/init.d/networking restart wpa_supplicant가 이전 구성으로 실행되도록 하는 방법은 무엇입니까?

/etc/init.d/networking restart wpa_supplicant가 이전 구성으로 실행되도록 하는 방법은 무엇입니까?

배경:

저는 Debian Lenny를 사용하고 있으며 두 개의 WiFi 인터페이스를 가지고 있습니다. 일반 구성을 사용합니다./etc/network/interfaces

iface wlan0 inet static
        address 10.0.0.1
        network 10.0.0.0
        netmask 255.255.255.0
        broadcast 10.0.0.255

auto wlan1
iface wlan1 inet static
        address 192.168.5.1
        network 192.168.5.1
        netmask 255.255.255.0
        broadcast 192.168.0.25

그래서 그런 징후가 전혀 없습니다 wpa_supplicant.

/etc/wpa_supplicant.confwpa_supplicant (v2.0) 을 사용하여 (wlan0의 경우) 및 (wlan1의 경우)을 통해 수동으로 /etc/wpa_supplicant2.confWLAN에 연결합니다 .

질문:

Wi-Fi 인터페이스가 WLAN에 연결되어 있지만

ip link set wlan0 down
ip link set wlan1 up
rm /var/run/wpa_supplicant/wlan0
rm /var/run/wpa_supplicant/wlan1

그래서 나는 그렇게 했습니다 ip link set wlan0 (and 1) up. 이 경우 iwconfig는 Wi-Fi 인터페이스가 어떤 네트워크에도 연결되어 있지 않음을 보여줍니다.

그 후 나는 달렸다 /etc/init.d/networking restart. 프로세스가 완료되면 iwconfig는 Wi-Fi 인터페이스가 이전에 연결되었던 WLAN에 연결되었음을 보여줍니다.

질문:

/etc/init.d/networking restart이전에 사용했던 인터페이스에 대해 .config 파일을 사용하여 wpa_supplicant를 실행하는 이유는 무엇입니까 (wlan0의 경우 wpa_suppliant.conf, wlan1의 경우 wpa_supplicant2.conf)? 이 프로세스를 여러 번 반복했고 매번 Wi-Fi 인터페이스가 .config 파일에 정의된 동일한 네트워크에 연결되었습니다.

내가 뭘 한거지:

1)/etc/init.d/networking스크립트가 어떤 방식으로든 wpa_supplicant를 사용하는 것 같습니다 . 그래서 나는 대본을 읽었습니다.

     #!/bin/sh -e
    ### BEGIN INIT INFO
    # Provides:          networking
    # Required-Start:    mountkernfs ifupdown $local_fs
    # Required-Stop:     ifupdown $local_fs
    # Default-Start:     S
    # Default-Stop:      0 6
    # Short-Description: Raise network interfaces.
    ### END INIT INFO
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"

[ -x /sbin/ifup ] || exit 0

. /lib/lsb/init-functions

process_options() {
    [ -e /etc/network/options ] || return 0
    log_warning_msg "/etc/network/options still exists and it will be IGNORED! R
ead README.Debian of netbase."
}

check_network_file_systems() {
    [ -e /proc/mounts ] || return 0

    exec 9<&0 < /proc/mounts
    while read DEV MTPT FSTYPE REST; do
        case $DEV in
        /dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*)
            log_warning_msg "not deconfiguring network interfaces: network devic
es still mounted."
            exit 0
            ;;
        esac
        case $FSTYPE in
        nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|pvfs|pvfs2|fuse.httpfs|fuse
.curlftpfs)
            log_warning_msg "not deconfiguring network interfaces: network file 
systems still mounted."
            exit 0
            ;;
        esac
    done
    exec 0<&9 9<&-
}

case "$1" in
start)

        process_options

        log_action_begin_msg "Configuring network interfaces"
        if ifup -a; then
            log_action_end_msg $?
        else
            log_action_end_msg $?
        fi
        ;;

stop)
        check_network_file_systems

        log_action_begin_msg "Deconfiguring network interfaces"
        if ifdown -a --exclude=lo; then
            log_action_end_msg $?
        else
            log_action_end_msg $?
        fi
        ;;

force-reload|restart)
        process_options

        log_action_begin_msg "Reconfiguring network interfaces"
        ifdown -a --exclude=lo || true
        if ifup -a --exclude=lo; then
            log_action_end_msg $?
        else
            log_action_end_msg $?
        fi
        ;;

*)
        echo "Usage: /etc/init.d/networking {start|stop|restart|force-reload}"
        exit 1
        ;;
esac

exit 0

ifupdownifdown을 실행하기 전에 wpa_supplicant를 종료하는 스크립트입니다(스크립트 설명대로). 저는 쉘이나 bash 프로그래밍을 모르지만 제가 이해한 바에 따르면 다시 시작하면 인터페이스에서 ifdown 및 ifup 작업만 수행됩니다.

2)ifup을 읽어보세요매뉴얼 페이지이는 다음과 같이 말합니다.

ifup 및 ifdown 명령을 사용하면 /etc/network/interfaces 파일의 인터페이스 정의를 기반으로 네트워크 인터페이스를 구성(또는 각각 구성 해제)할 수 있습니다.

내에는 /etc/network/interfaceswpa_supplicant에 대한 구성이 포함되어 있지 않습니다.

관련 정보