我曾经使用exec 3<>/dev/tcp/192.168.0.101/6435
192.168.0.101:6435建立TCP连接。而且我已经收到并通过pipe
命令发送了一些消息。
现在,我要终止TCP连接。但是,ss -anpet
从中我可以看到bash本身保持了此连接,而没有派生子进程。
我试图将信号9和15发送到bash进程,但是如您所知,bash无法杀死自己。
因此,我可以在不终止正在使用的pt的情况下终止已建立的TCP连接(既不通过root杀死它也不发送Ctrl + D)吗?
bash
当然可以杀死自己-尽管这实际上不是您想要在这里做的!
@TJM使这个引人入胜的问题对其他人更有用,请您详细说明
—
arielf
pipe
您正在使用的命令,而我在系统上找不到该命令?哪个包裹pipe
来自?您可以传递哪些(示例)参数以通过/dev/tcp/...
连接发送/接收数据?谢谢。
@arielf通常,我是计算机科学的初学者,我从名为sedbot的bash shell脚本中发现了这种用法,您可以在Github上找到它。是的,我在中找不到任何文件
—
TJM
/dev/tcp
,甚至找不到/dev/tcp
自身。但是,您似乎可以通过pipe
这种文件发送/接收数据,这是一种特殊用法。据说/dev/tcp/ip/port
用于tcp连接和/dev/udp/ip/port
udp软件包。由于我的英语不是很好,我不知道如何正确解释它。请随时编辑问题并发布答案。
@TJM谢谢。问题是关于
—
arielf
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。无论如何,这阐明了full方法。pipe
对于读者来说,“ 命令”的提及仍然是个谜。
bash
用那个炮弹杀死吗?