Shu*_*eng 6 sockets linux signals python-3.x
如何
eof通过套接字向远程 shell 中运行的命令发送信号?
我使用 Python 进行编程,使用套接字(一个远程 shell 应用程序),在其中发送要在另一台 PC 上执行的命令。
一切正常(对于大多数命令),除了像这样的命令cat > file给我带来了问题。
CTRL + D通常,我会用( eofsignal)终止上面的命令,但是按下CTRL + D我的客户端,不会将信号发送到远程 shell。因此我无法终止该命令,我被困住了。
有人有建议吗?
eof 不是一个信号,而是由 tty 驱动程序实现为当您键入 时读取长度为 0 的内容ctrl-d。
如果您的远程设备没有在 tty 中运行,那么您无法生成 eof,因为您无法发送长度为 0 的数据包。但是,如果您运行像script /dev/null远程 shell 中的第一个命令那样的程序,那么这将封装您的 shell例如,在伪 tty 内,您将能够发送一个真实ctrl-d字符(十六进制 0x04),pty 会将其转换为 eof 并结束一只猫。stty -a向远程发送 a以检查您的 pty 中是否启用了 eol。
stty -a在我的终端上显示lnext = ^V(literal-next char),这样我就可以ctrl-vctrl-d输入真正的十六进制 0x04 字符。
据我所知,我选择了script在通信中有效地插入伪终端,并且对数据流不执行任何操作。这不是它最初的目的(参见它的手册页),但这并不重要。
| 归档时间: |
|
| 查看次数: |
6104 次 |
| 最近记录: |