优雅地终止 Run Program()我遇到的情况是使用 Run Program() 将文件发送到 FTP/MTP 站点。 总的来说,一切都很好,但有时连接会出现问题,程序会无限期滞后。 我已经从命令行重新创建了这个问题,它基本上是一个丢失连接类型的事件。 但我需要 Ctrl-break 退出 CMD 才能停止它。
在 JMP 中,我想设置一个超时来降低风险,但我一直无法让其正常工作。 目前,我将超时构建到 While(!(x << isReadEof), Wait(0.1)) 命令中,以便 x 设置为 0,从而破坏运行程序。 但是,当我执行此操作时,JMP 通常会冻结较短或较长的时间,以修复(或在修复其他内容时)一直在发生的背景内容。
有没有办法强制关闭 Run Program() 及其调用的进程,而不会有冻结 JMP 的风险?
谢谢!
回复:优雅地终止 Run Program()谢谢你的主意@Craige_Hales ! 我之前尝试过 <
如果我找到一个可行的可靠方法,我会将其发布在这里,但我肯定会尝试您的一些想法!
回复:优雅地终止 Run Program()尝试一下<<写对 FTP 程序执行适当的 quit 或 exit 命令,然后是 rp <<写EOF 。 (尽管,正如您所说,当连接丢失挂起时,FTP 程序似乎会忽略一切。)
当保存 RunProgram 对象(在我的示例中为 rp)的 JMP 变量被 JMP 结束覆盖或破坏时,它将等待 ftp 程序完成。 我认为没有办法通过 FTP 标准输入发送 ctrl-break。
我认为丢失的连接挂起默认情况下可能会持续长达 10 分钟,并且可以配置;我不确定它是在 FTP 程序中还是在 Windows 注册表设置中。 对于我的测试,它似乎挂起大约 1 分钟。
我所有的实验都是使用内置的 Windows FTP 客户端完成的。 可能还有其他客户端可能具有不同的功能。