Я використовував exec 3<>/dev/tcp/192.168.0.101/6435
для встановлення TCP-з'єднання з 192.168.0.101:6435. І я отримав так само, як надіслав кілька повідомлень із pipe
командою.
Тепер я хочу припинити TCP-з'єднання. Але, ss -anpet
я можу бачити, що баш сам тримає цей зв'язок, не змушуючи дочірнього процесу.
Я намагався надіслати сигнали 9 і 15 до процесу баш, але, як відомо, баш не може себе вбити.
Отже, чи можу я припинити встановлене мною з'єднання TCP, не припиняючи очки, які я використовую (ні вбиваючи його коренем, ні надсилаючи Ctrl + D)?
bash
безумовно, можна вбити себе, хоча це насправді не те, що ви хочете зробити тут!
@TJM, щоб зробити це захоплююче питання більш корисним для інших, чи можете ви, будь ласка, детальніше розглянути
—
аріельф
pipe
команду, яку ви використовуєте, і яку я не можу знайти у своїй системі? З якого пакету pipe
виходить? Які (приклад) параметри ви можете передати йому для надсилання / отримання даних через /dev/tcp/...
з'єднання? Спасибі.
@arielf Як правило, я початківець з інформатики, і я знайшов таке використання в скрипті bash shell під назвою sedbot, його можна знайти в Github. Так, я не можу знайти жодного файлу
—
TJM
/dev/tcp
, навіть не можу знайти /dev/tcp
себе. Але, схоже, особливе використання, з яким ви можете надсилати / отримувати дані pipe
та файли подібного типу. Кажуть, що використовувати /dev/tcp/ip/port
для tcp-з'єднань та /dev/udp/ip/port
udp-пакетів. Бо моя англійська не дуже гарна, я не знаю, як це правильно пояснити. Будь ласка, відредагуйте питання та опублікуйте відповідь.
@TJM спасибі Питання стосувалося
—
аріельф
pipe
команди, яку ви згадуєте. Я подивився https://github.com/clsr/sedbot/blob/master/sedbot.bash
. Там немає ніякої pipe
команди. Він визначає дві функції: readmsg
і sendmsg
читати / записувати з / до з'єднання відповідно. readmsg
використовує IFS= read -r -u 3 -t "$READ_TIMEOUT" line
для читання з файлового дескриптора 3 у змінну line
та sendmsg
використовує echo "$(date +%s.%N) >>> $line" >&4
для запису у дескриптор файлу 4. У будь-якому випадку це пояснює повний метод. pipe
Згадка про " командування" все ще залишається загадкою для читачів.
bash
з цією оболонкою?