# ifplugd stört distcc und ntlmaps

## 72_6f_6c_61_6e_64

Hallo,

ich hab ifplugd, weil ich bei dem Netbook in den wenigsten Fällen eine Internetverbindung habe, wenn ich die Kiste hochfahre.

meine Runlevels sehen so aus:

```
               acpid | battery      default                  

            bootmisc |         boot                          

             checkfs |         boot                          

           checkroot |         boot                          

               clock |         boot                          

         consolefont |         boot                          

            cpufreqd | battery      default                  

               cupsd | battery      default                  

                hald | battery      default                  

            hostname |         boot                          

             keymaps |         boot                          

         laptop_mode | battery                               

               local | battery      default nonetwork        

          localmount |         boot                          

             modules |         boot                          

              net.lo |         boot                          

            netmount | battery      default                  

      NetworkManager | battery      default                  

           rmnologin |         boot                          

           syslog-ng | battery      default                  

      udev-postmount | battery      default                  

             urandom |         boot                          

          vixie-cron | battery      default
```

Wenn ich distcc oder ntlmaps starten will sagen die:

```
% sudo /etc/init.d/ sudo /etc/init.d/distccd start 

 * Service distccd starting

 * WARNING:  distccd is scheduled to start when net.eth0 has started.

% sudo /etc/init.d/ntlmaps restart

 * Service ntlmaps starting

 * Service net.wlan0 starting

 * WARNING:  net.wlan0 has started but is inactive

 * WARNING:  ntlmaps is scheduled to start when net.wlan0 has started.
```

Was mache ich da falsch?

LG Roland

----------

## Max Steel

Das ist ganz normales Verhalten.

Er erkennt das das Netzwerk nicht gestartet ist (hier net.eth0) und blockt deswegen das Starten von distccd und ntlmaps, gleichzeitig sagt er das diese Services gestartet werden, wenn net.eth0 gestartet wird.

Wenn du natürlich ein WLAN hast, kannst du ausprobiern in der /etc/conf.d/rc.conf bei rc_net_district (oder so ähnlich) umzuschalten. Dann ist es egal welches, aber es muss 1 net.* (außer net.lo) gestartet sein.

----------

## 72_6f_6c_61_6e_64

 *Max Steel wrote:*   

> Das ist ganz normales Verhalten. ...

 

Das beruhigt mich.

 *Max Steel wrote:*   

> ... Er erkennt das das Netzwerk nicht gestartet ist (hier net.eth0) und blockt deswegen das Starten von distccd und ntlmaps, gleichzeitig sagt er das diese Services gestartet werden, wenn net.eth0 gestartet wird. ... 

 

Das klingt logisch. Aber sollte nicht ifplugd den Dienst net.eth0 bzw. net.wlan0 starten, wenn es verfügbar ist?

 *Max Steel wrote:*   

> ... Wenn du natürlich ein WLAN hast, ...

 

Ich hab daheim kein WLAN, das heißt wenn ich den Rechner hochfahre habe ich überhaupt keine Internetverbindung.

Ich hätte gerne dann das die Dienste starten, wenn eine Internetverbindung besteht.

LG Roland

----------

## 72_6f_6c_61_6e_64

Geht das nicht, dass man die Dienste startet, wenn das WLAN bzw. Kabel verbunden ist?

----------

## Beforegod

Ein wenig Google hat mir verraten das es wohl eine ifplugd.action Datei gibt. Dort könntest dann die Services einschreiben.

----------

## 72_6f_6c_61_6e_64

Die Datei hab ich auch gefunden: (/etc/ifplugd/ifplugd.action)

Ich hab nur keinen blassen Schimmer wie die Syntax dafür funktioniert.

Schreibt man das in die ifplugd.action-Datei? oder ruft man die mit Parametern auf? Ich verstehs nicht

LG Roland

----------

## Beforegod

 *72_6f_6c_61_6e_64 wrote:*   

> Die Datei hab ich auch gefunden: (/etc/ifplugd/ifplugd.action)
> 
> Ich hab nur keinen blassen Schimmer wie die Syntax dafür funktioniert.
> 
> Schreibt man das in die ifplugd.action-Datei? oder ruft man die mit Parametern auf? Ich verstehs nicht
> ...

 

http://en.gentoo-wiki.com/wiki/Wireless/Configuration#Wireless_.2B_Ethernet_.28ifplugd.29

----------

## 72_6f_6c_61_6e_64

Danke, da hätte ich auch gleich schauen sollen.

Da steht das: ich kenn mich aber nicht ganz damit aus.

```
...

case "$2" in

    up)

   if [ "${INITNG}" = "yes" ]

   then

       ARGS="-u net/$1"

   else

       /etc/init.d/net.wlan0 --quiet stop   # this line is new

       modprobe -r iwl3945         # this line is new

       ARGS="--quiet start"

   fi

   ;;

    down)

   if [ "${INITNG}" = "yes" ]

   then

       ARGS="-d net/$1"

   else

       ARGS="--quiet stop"

       modprobe iwl3945         # this line is new

       /etc/init.d/net.wlan0 --quiet start   # this line is new

   fi

   ;;

...
```

muss ich statt modprobe xxx dann ein "/etc/init.d/distccd --quiet start" eingeben um distcc zu starten?

Ich versteh die syntax noch nicht ganz.

Was muss ich angeben, dass er net.eth0 startet wenn das kabel eingesteckt wird? (kann man dort auch gleich die dienste drunterschreiben, die nach net.eth0 gestartet werden sollen?

Wie macht man das mit dem WLAN? Die Dienste (und net.wlan0) sollen gestartet werden, wenn ich mit einem WLAN verbunden bin. 

Wie mach ich das, dass alles wieder gestoppt wird, wenn das kabel abgesteckt/das wlan getrennt wird?

LG Roland

----------

## Beforegod

Probiers mal so

```

# Gentoo-specific ifplugd.action

#

# This file gets called by ifplugd when it wants to bring an interface

# up or down.

#

if grep -q initng /proc/1/cmdline 

then

    EXEC="/sbin/ngc"

    INITNG="yes"

else

    EXEC="/etc/init.d/net.$1"

    INITNG="no"

fi

case "$2" in

    up)

        if [ "${INITNG}" = "yes" ]

        then

            ARGS="-u net/$1"

        else

            ARGS="--quiet start"

            /etc/init.d/distcc --quiet start

            /etc/init.d/ntlmaps --quiet start

        fi

        ;;

    down)

        if [ "${INITNG}" = "yes" ]

        then

            ARGS="-d net/$1"

        else

            ARGS="--quiet stop"

            /etc/init.d/distcc --quiet stop

            /etc/init.d/ntlmaps --quiet start

        fi

        ;;

    *)

        echo "$0: wrong arguments" >&2

        echo "Call with <interface> <up|down>" >&2

        exit 1

        ;;

esac

export IN_BACKGROUND=true

if [ -x "${EXEC}" ]

then

    ${EXEC} ${ARGS}

    exit 0

else

    logger -t ifplugd.action "Error: Couldn't configure $1, no ${EXEC} !"

    exit 1

fi

# vim: set ts=4

```

----------

## 72_6f_6c_61_6e_64

Ich glaub das ist ein Tippfehler oder?

 *Quote:*   

>             ARGS="--quiet stop" 
> 
>             /etc/init.d/distcc --quiet stop 
> 
>             /etc/init.d/ntlmaps --quiet start

 

Ich habs mit distccd und mit stop statt start abgeändert. Dann neugestartet (ohne Kabel oder WLAN).

Ein /etc/init.d/distccd status oder ein /etc/init.d/ntlmapsd status sagen "stopped" und ein /etc/init.d/net.eth0 sagt "inactive".

Was jetzt? Muss man ifplugd irgenwo extra starten?

----------

## Beforegod

Jep waren Tippfehler.

ifplugd ist nicht in deiner Boot Liste mit dabei.

rc-update add ifplugd default

----------

## 72_6f_6c_61_6e_64

Ähm Ja,   :Rolling Eyes: 

```
% rc-update add ifplugd default

 * rc-update: '/etc/init.d/ifplugd' not found; aborting
```

Was jetzt?

----------

## 72_6f_6c_61_6e_64

Antwortet wer?

----------

## Beforegod

qlist -I ifplugd

----------

## 72_6f_6c_61_6e_64

 *qlist -I ifplugd wrote:*   

> sys-apps/ifplugd

 

Das heißt es ist installiert?

Edit:

mit eix verstehs sogar ich:

```
 eix ifplugd

[I] sys-apps/ifplugd

     Available versions:  0.28-r9 {doc}

     Installed versions:  0.28-r9(10:05:19 AM 12/12/2010)(-doc)

     Homepage:            http://0pointer.de/lennart/projects/ifplugd/

     Description:         Brings up/down ethernet ports automatically with cable detection

```

----------

## Uli Sing

Das heißt, dass der ifplugd installiert und auch gestartet ist. Es existiert kein eigenes Start-Skript.

```
ps ax  | grep ifplugd
```

----------

## 72_6f_6c_61_6e_64

```
 % ps ax | grep ifplugd

 2861 ?        Ss     0:00 /usr/sbin/ifplugd ... --iface=eth0

 5902 pts/1    R+     0:00 grep ifplugd
```

----------

## Uli Sing

Na also.

Bezüglich Deiner Eingangsfrage muss ich leider passen.

Selbst ich kann ned alles wissen.  :Wink: 

----------

## 72_6f_6c_61_6e_64

 *Uli Sing wrote:*   

> Na also.

 

Hä? Heißt das: "Ja es ist installiert", oder "Es hat doch eh einen Startskript"

 *Uli Sing wrote:*   

> Selbst ich kann ned alles wissen. 

 

Gibts wen anderen der das weiß?

----------

## forrestfunk81

Ich nehm mal an, du hast baselayout 1 im Einsatz. Ich benutze baselayout 2 und Networkmanager, d.h. net.eth* und net.wlan* werden nicht beim booten gestartet, distcc startet aber trotzdem (nach net.lo). 

Bei mir beinhaltet /etc/init.d/distccd

```
depend() {

        need net

        use avahi-daemon ypbind

}

```

Du kannst es entweder mit baselayout 2 versuchen oder aber einfacher: aus dem Distcc Runscript die Abhängigkeiten von net manuell entfernen.

----------

## Uli Sing

 *72_6f_6c_61_6e_64 wrote:*   

>  *Uli Sing wrote:*   Na also. 
> 
> Hä? Heißt das: "Ja es ist installiert", oder "Es hat doch eh einen Startskript"

 

Was mag es wohl heißen, wenn Du den Dämon in der Prozessliste findest?  :Wink: 

----------

