Остановить процесс Ping в bash скрипте? - PullRequest
0 голосов
/ 29 апреля 2020

Я создал bash сценарий для проверки связи с моей локальной сетью, чтобы увидеть, какие хосты работают, и у меня возникла проблема с остановкой процесса Ping с помощью ctrl + C, как только он запущен, я нашел способ приостановить его, но даже команда kill не работает с PID Ping

submask=100
for i in ${submask -le 110}
do
    ping -n 2 192.168.1.$submask
    ((submask++))
done

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

Ctrl + C выход из ping, но начинается другой ping. Так что вы можете использовать ловушку.

#!/bin/bash

exit_()
{
        exit
}

submask=100
while [ $submask -le 110 ]
do
    fping -c 2 192.168.77.$submask
   ((submask++))
   trap exit_ int
done
0 голосов
/ 29 апреля 2020

Я предлагаю вам ограничить количество отправляемых пакетов с ping опцией -c.

Я также исправил синтаксис bash, угадывая, что вы собираетесь делать.

Наконец, быстрее запускать все процессы ping параллельно с операндом &.

Попробуйте:

for submask in ${100..110}
do
    echo ping -c 1 192.168.1.$submask &
done
...