LINUX.ORG.RU

Ответ на: комментарий от KennyMinigun

И что должно произойти? ping как сыпал выхлоп на консоль так и сыпет

af5 ★★★★★ ()
Ответ на: комментарий от kvap

Нет, много лишнего на экран вывалится и невидно будет что там было пару секунд назад. А если цикл более длинный то пары секунд не хватит, 10000 к примеру пальцы отсохнут ctrl-c держать

af5 ★★★★★ ()
Ответ на: комментарий от kvap

Похоже это наиболее прямой костыль, спасибо.

af5 ★★★★★ ()

так сделай ps aux | grep bash, найди нужный тебе процесс и прибей его.

--! а вообще ставь sleep'ы на такой случай

demidrol ★★★★★ ()
Ответ на: комментарий от af5

Ctrl-\ ? Это от настроек терминала зависит.

$ stty -a
speed 38400 baud; rows 50; columns 189; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O;
min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

вот это в первой строчке: quit = ^\; комбинация для SIGQUIT, по SIGQUIT ping вернёт не нулевой код выхода, сработает break и прервёт цикл. Возможно конечно у тебя другой ping и он по SIGQUIT возвращает 0.

Eshkin_kot ★★ ()
Последнее исправление: Eshkin_kot (всего исправлений: 1)

man pstree
смотришь дерево, находишь парента, убиваешь. добиваешь зомбей.

Komintern ★★★★★ ()
Ответ на: комментарий от Eshkin_kot

У меня и это нет. И по kill -QUIT то же самое. И в man есть:

Shorter current statistics can be obtained without termination of process with signal SIGQUIT.

iputils-20121221-2.fc19.x86_64

USR1 / USR2 катят, но их вроде как с клавиатуры не пошлешь.

Пытался завести такое, но не взлетает. Видимо, stdin дублируется, а не закрывается, и read в нем никаких данных не успевает найти:

exec 3<&0
for i in {1..20}; do
    ping 127.0.0.$i -c 3
    read -t 0 -n 1 <&3
    if [ -n "$REPLY" ]; then
        break
    fi
done
qux ()
Ответ на: комментарий от qux

О чёрт, у меня другой пинг :)

$ alias ping
alias ping='grc ping'

grc у меня завершается, а не пинг :(

похоже цикл по ping никак не прервать удобным способом с консоли %)

Eshkin_kot ★★ ()
Ответ на: комментарий от Eshkin_kot

Отрицательный результат тоже результат

af5 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.