Podczas próby użycia polecenia ping
skrypt My Perl utknął przy użyciu exit status
.Status wyjścia polecenia ping
Odpowiedz
Narzędzie ping zwraca wyjścia stan zero, jeżeli co najmniej jeden reakcji było słychać z podanego gospodarza; status dwóch, jeśli transmisja zakończyła się powodzeniem, ale nie otrzymano odpowiedzi ; lub inna wartość (z), jeśli wystąpił błąd .
http://www.manpagez.com/man/8/ping
rzeczywistych wartości zwrotnych może zależeć od Twojego systemu.
czwarte ogniwo w dół jest this który stanowi:
Jeśli ping nie nie otrzyma żadnej odpowiedzi pakietów w ogóle nastąpi wyjście z kodem 1. Jeśli liczba pakietów i termin są określone, a mniej niż liczba pakietów zostanie odebranych do czasu nadejścia terminu, to również zakończy się kodem 1. Na inny błąd kończy się kodem 2. W przeciwnym razie kończy się kodem o numerze 0. Dzięki temu można użyć kodu wyjścia, aby sprawdzić, czy host jest żywy, czy nie.
Do listy wyników:
- sukcesu: Kod 0
- Brak odpowiedzi: 1 Kod
- Inne błędy: Kod 2
Zauważ, że strona I odwołuje się do mówi "Linux/Unix ping command", ale inne systemy, a może nawet warianty systemu Linux i Unix, mogą zmieniać tę wartość.
Jeśli to możliwe, chciałbym przetestować w danym systemie, aby upewnić się, że masz właściwe.
Wypróbuj man ping
z wiersza poleceń. Wartości zwracane są wymienione w dolnej części.
Nie, nie są. Na przykład GNU ping wydaje się zwracać 255, jeśli nie dałeś mu wystarczająco dużo czasu na wysłanie wszystkich pakietów. To wydaje się być udokumentowane nigdzie. –
Warto przeprowadzić pewne testy na tym systemie operacyjnym. mi.g na OSX
rozróżnialnych gospodarza, który jest gotowy
ping -c 1 google.com ; echo $?
Odpowiedzi:
PING google.com (173.194.38.14): 56 data bytes
64 bytes from 173.194.38.14: icmp_seq=0 ttl=51 time=16.878 ms
--- google.com ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 16.878/16.878/16.878/0.000 ms
Zwraca
0
rozróżnialnych gospodarza, który jest w dół/nie odpowiada na ping
ping -c 1 localhost ; echo $?
Odpowiedzi:
PING stuart-woodward.local (127.0.0.1): 56 data bytes
--- stuart-woodward.local ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
Powroty:
2
dla rozróżnialnych gospodarza
ping -c 1 sdhjfjsd ; echo $?
Odpowiedzi:
ping: cannot resolve sdhjfjsd: Unknown host
Powroty:
68
Udane połączenie będzie zawsze zwraca kod 0, podczas gdy połączenia nie powiodło się zawsze zwraca kod 1 i powyżej.
Aby to przetestować, wypróbować ten fragment
#!/bin/bash
light_red='\e[1;91m%s\e[0m\n'
light_green='\e[1;92m%s\e[0m\n'
ping -c 4 -q google.comz
if [ "$?" -eq 0 ]; then
printf "$light_green" "[ CONNECTION AVAILABLE ]"
else
printf "$light_red" "[ HOST DISCONNECTED ]"
fi
Należy również wziąć pod uwagę, że jeśli ping np odbiera „sieci nieosiągalny” odpowiedź ICMP, będzie ona liczona jako post zatem zwraca sukces status 0 (testowany z pingiem cygwin w systemie Windows). Tak naprawdę nie jest to przydatne do testowania, czy host jest żywy i IMO jest błędem.
- 1. Bash uzyskać status wyjścia polecenia, gdy "set -e" jest aktywny?
- 2. Jak przetestować niezerowy status wyjścia polecenia w Bash?
- 3. zwrócił niezerowy status wyjścia -9
- 4. przeciwieństwo polecenia "git status"
- 5. Gdzie status wyjścia następuje po pułapce/zwrocie?
- 6. Wyjścia "+" i "-" polecenia Zadania
- 7. Co oznacza status wyjścia procesu 3?
- 8. Jak ustawić status wyjścia w Groovy Script
- 9. Jak uzyskać wartość zwracaną (status) polecenia zewnętrznego w Vim
- 10. Jak odzyskać status wyjścia z ruby Open3.popen3()?
- 11. Podproces Pythona zwraca niezerowy status wyjścia tylko w cronie
- 12. Lista urządzeń w sieci lokalnej za pomocą polecenia ping
- 13. Limit czasu oczekiwania na wysłanie polecenia ping do routera bezprzewodowego
- 14. Sprawdzanie dostępności hosta za pomocą polecenia ping w skryptach bash
- 15. Jak zaimplementować ping ping PsPing w C#
- 16. Problem ping URL z C#
- 17. GDB informacji rejestruje polecenia - druga kolumna wyjścia
- 18. Przekierowanie wyjścia za pomocą polecenia "ekran"
- 19. Użyj wyjścia polecenia powłoki jako zmiennej
- 20. przekierowanie wyjścia polecenia "znajdź" do "vim"
- 21. Specjalna zmienna Zshell dla wyjścia poprzedniego polecenia
- 22. Jak uzyskać status wyjścia programu Java w pliku wsadowym Windows
- 23. Odzyskaj status wyjścia ze skryptu php wewnątrz skryptu powłoki
- 24. Status wyjścia QuickCheck w przypadku awarii i integracji kabalowej
- 25. C compile: collect2: error: ld zwrócony 1 status wyjścia
- 26. Latencja Bluetooth Ping
- 27. Android ICMP ping
- 28. C# ping minecraft
- 29. Jak odczytać wynik polecenia linux process status (ps) w R?
- 30. rura Linux: Przechwytywanie wyjścia realtime pinga przez popen
To prawdopodobnie należy do http://serverfault.com. –