2016-12-30 1 views
1

Ich verwende einen arping Befehl, um doppelte IPs im Netzwerk zu finden, bevor Sie es meinem Gerät zuweisen. Ich benutze diesen Befehlarping funktioniert nicht, wenn aus einem Skript aufgerufen

arping -D -I ${NET_DEVICE} -c 10 ${IPADDR}

Danach, überprüfe ich mit $? für die Antwort und entscheidet, ob er dupliziert hat oder nicht.

Das Problem ist, dieser Befehl gibt als not duplicated zurück, wenn ich es aus meinem network_reset Skript aufrufen. Wenn ich es von außen individuell nenne, funktioniert es perfekt.

Alle Vorschläge sind willkommen.

+0

Welches Arping ist das? Es gibt mindestens zwei. – Thomas

+0

@Thomas> Entschuldigung. Ich bin ein Anfänger. Ich bin mir nicht mehr als einer bewusst. Ich folgte dieser folgenden Manpage https://linux.die.net/man/8/arping –

Antwort

1

Ich hatte ähnliche Probleme mit Programmen, die in Signalhandlern funktionieren. Ich habe ein anderes Verhalten in der Befehlszeile als in einem Skript ausgeführt.

Ich sehe, dass iputils-arping, die Sie wahrscheinlich verwenden, scheint POSIX in der gleichen Weise zu verletzen, die ich gesehen habe. Eine Liste der erlaubten Funktionen finden Sie unter signal(7). iputils-arping verwendet viele mehr.

Dies kann die Ursache dessen sein, was Sie sehen.

Sie könnten versuchen, die portable arping.

Verwandte Themen