Я використовував 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/portudp-пакетів. Бо моя англійська не дуже гарна, я не знаю, як це правильно пояснити. Будь ласка, відредагуйте питання та опублікуйте відповідь.
@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з цією оболонкою?