wie bewirkt /etc/init.d/networking restart, dass wpa_supplicant mit den vorherigen Konfigurationen ausgeführt wird?

wie bewirkt /etc/init.d/networking restart, dass wpa_supplicant mit den vorherigen Konfigurationen ausgeführt wird?

Hintergrund:

Ich verwende Debian Lenny und habe zwei WiFi-Schnittstellen. Ich verwende eine generische Konfiguration auf/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

Es hat also kein Zeichen über das wpa_supplicant.

Ich verwende wpa_supplicant (v2.0) manuell, um sie über /etc/wpa_supplicant.conf(für wlan0) und /etc/wpa_supplicant2.conf(für wlan1) mit einem WLAN zu verbinden.

Problem:

Während die WiFi-Schnittstellen mit WLANs verbunden sind,

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

Dann mache ich das ip link set wlan0 (and 1) up. In diesem Fall zeigt die iwconfig an, dass die WLAN-Schnittstellen mit keinem Netzwerk verbunden sind.

Danach führe ich aus /etc/init.d/networking restart. Wenn der Vorgang abgeschlossen ist, zeigt iwconfig an, dass die WLAN-Schnittstellen mit den WLANs verbunden sind, mit denen sie zuvor verbunden waren.

Frage:

Wie kommt /etc/init.d/networking restartes, dass wpa_supplicant unter Verwendung der .config-Datei für die zuvor verwendete Schnittstelle ausgeführt wird (wpa_supplicant.conf für wlan0 und wpa_supplicant2.conf für wlan1)? Ich habe diesen Vorgang viele Male wiederholt und jedes Mal waren die WLAN-Schnittstellen mit demselben Netzwerk verbunden, das in den .config-Dateien definiert ist.

Was habe ich getan:

1)Ich vermutete, dass das /etc/init.d/networkingSkript irgendwie wpa_supplicant verwendet. Daher habe ich mir das Skript einmal angeschaut:

     #!/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

ifupdownist ein Skript, das den wpa_supplicant beendet, bevor ifdown ausgeführt wird (wie das Skript erklärt). Ich kenne mich mit Shell- oder Bash-Programmierung nicht aus, aber so wie ich es verstanden habe, führt ein Neustart nur ifdown und ifup der Schnittstellen aus.

2)Lesen Sie die ifup'smanpagewas sagt:

Die Befehle ifup und ifdown können zum Konfigurieren (bzw. Dekonfigurieren) von Netzwerkschnittstellen basierend auf Schnittstellendefinitionen in der Datei /etc/network/interfaces verwendet werden.

meins /etc/network/interfacesenthält keine Konfiguration über den wpa_supplicant.

verwandte Informationen