英语法语西班牙文

OnWorks 网站图标

sockdown - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 sockdown

这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 sockdown,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


降价 - 关闭(2) 一个插座

网络管道 4.2

概要


下架 [ fd [形成一种]]

商品描述


下架 执行 关闭(2) 对其指定的文件描述符之一的系统调用
fd. 可能的值 形成一种 旨在

┌──────────┬────────────────────────────────────── ──────────────────────┐
│writeonly │ 转为只写文件描述符│
│0 │ 转为只写文件描述符│
│writeonly │ 符号同上│
│1 │ 转为只读文件描述符│
│readonly │ 符号同上│
│2│完全关机。 不允许再读或写 │
│完全│象征性同上│
└──────────┴──────────────────────────────────────── ──────────────────────┘

默认值 fd 是 1 (stdout) 和默认值 形成一种 是1。

示例


假设您有一台可以执行服务的机器(在这种情况下是从 ASCII 转换
花哨的附言):

server$ 水龙头 3000 --in --out enscript -2rGhp -

然后你可以用软管连接到它。 然而,第一个例子进入了死锁:

客户端 $ 软管服务器 3000 -in -out \
sh -c " cat blah.txt & cat > blah.ps "

enscript 阻塞等待来自套接字的输入,因为不是所有的客户端
进程已经退出。 虽然 cat blah.txt 已完成,但 cat > blah.ps 尚未完成,并且
在远程 enscript 进程完成写入之前不会完成。 脚本
进程在读取完成之前不会完成写入,但是客户端->服务器一半
套接字仍然打开,直到所有客户端进程都被关闭才会关闭
完毕。 结果是死锁。

所以,我们使用sockdown来关闭一半的管道

客户端 $ 软管服务器 3000 -in -out \
sh -c" ( cat blah.txt ; 袜子 ) & cat > blah.ps "

这样当 cat blah.txt 完成后,一半的套接字被关闭,远程
enscript 进程用完输入,导致它刷新其输出并退出,所以最终
整个烂摊子干净利落地结束。

注意:软管上的 & 是必要的,以防止再次出现死锁。 如果我们简单地使用 ;
为了序列化两个 cat 进程,enscript 可能会填满它的
在第一个 cat 完成之前写入缓冲区导致两个进程阻塞并阻止
第二只猫排空管道。

当然,软管的惯用用法是如此有用,以至于它是一种特殊形式:

客户端 $ 软管服务器 3000 -slave < blah.txt > blah.ps

伊恩·斯特林[电子邮件保护]> 通知我 下架 可以在 Linux 中使用
/过程/PID/fd/ 目录来拆除挂起的网络连接。 我已经使用了这个
我自己在楔形 MOMspider 上。 要尝试此操作,您必须知道程序的 PID 并且
楔形套接字的文件描述符(有时可以通过运行找到 痕迹 并看到
如果程序卡在 (2) 系统调用)。 如果 PID 是 991 并且套接字的
描述符为 5,您以 root 身份执行此操作:

bash#sockdown 1 2 > /proc/991/fd/5

错误


插座 操作 on 非插座

无效 论点 (见 on 索拉里斯) 这款 fd 您指定的不是指套接字。 这个
当您单独运行 sockdown 时发生(不太可能任何文件描述符
连接到交互式外壳实际上是插座)或者如果你弄脏了你的水龙头/软管
命令并忘记了 DUP(2) 你的描述符之一。

文件 你给了它一个错误的文件号 fd. 如果你有足够的技能
实际产生这个错误,你可能知道什么是错的。

如果您遇到任何其他错误,请提示我。

使用 onworks.net 服务在线使用袜子


免费服务器和工作站

下载 Windows 和 Linux 应用程序

  • 1
    PAC 经理
    PAC 经理
    PAC 是 Perl/GTK 的替代品
    SecureCRT/Putty/等(Linux
    ssh/telnet/... gui)... 它提供了一个 GUI
    配置连接:用户,
    密码,EXPECT 规则...
    下载 PAC 管理器
  • 2
    GeoServer的
    GeoServer的
    GeoServer是一个开源软件
    用 Java 编写的服务器,允许用户
    共享和编辑地理空间数据。
    专为互操作性而设计,它
    发表...
    下载地理服务器
  • 3
    萤火虫III
    萤火虫III
    免费和开源的个人理财
    经理。 Firefly III 具有
    复式簿记系统。 你可以
    快速输入并整理您的
    交易我...
    下载萤火虫III
  • 4
    Apache OpenOffice 扩展
    Apache OpenOffice 扩展
    Apache的官方目录
    OpenOffice 扩展。 你会找到
    扩展范围从字典到
    用于导入 PDF 文件和连接的工具
    与外...
    下载 Apache OpenOffice 扩展
  • 5
    螳螂BT
    螳螂BT
    Mantis 是一个易于部署的网络
    基于错误跟踪器来帮助产品错误
    追踪。 它需要 PHP、MySQL 和一个
    网络服务器。 查看我们的演示并托管
    提供...
    下载MantisBT
  • 6
    LAN Messenger
    LAN Messenger
    LAN Messenger 是一个 p2p 聊天应用程序
    用于 Intranet 通信,并且不
    需要服务器。 各种得心应手
    支持的功能包括
    通知...
    下载 LAN Messenger
  • 更多 ”

Linux 命令

Ad