Я использовал exec 3<>/dev/tcp/192.168.0.101/6435
для установления соединения TCP с 192.168.0.101:6435. И я получил, а также отправил несколько сообщений с pipe
командой.
Теперь я хочу разорвать соединение TCP. Но, как ss -anpet
я вижу, bash сам удерживает эту связь, не разветвляя дочерний процесс.
Я пытался послать сигнал 9 и 15 процессу bash, но, как вы знаете, bash не может убить себя.
Итак, могу ли я разорвать установленное мною TCP-соединение, не прерывая те точки, которые я использую (ни убивая его root, ни отправляя Ctrl + D)?
bash
конечно, может убить себя - хотя это на самом деле не то, что вы хотите сделать здесь!
@TJM, чтобы сделать этот увлекательный вопрос более полезным для других, не могли бы вы рассказать о
—
Ариэльф
pipe
команде, которую вы используете, и которую я не могу найти в моей системе? Из какой упаковки pipe
поступает? Какие (примерные) параметры вы можете передать ему для отправки / получения данных по /dev/tcp/...
соединению? Благодарю.
@arielf Как правило, я новичок в области компьютерных наук, и я нашел этот вид использования в сценарии оболочки bash под названием 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
?