優雅地終止運行程序()我處於使用 Run Program() 將文件發送到 FTP/MTP 站點的情況。 總的來說,一切都很好,但有時連接中會出現扭結,程序會無限期地滯後。 我已經從命令行重新創建了這個問題,它基本上是一個丟失連接類型的事件。 但我需要 Ctrl-break 退出 CMD 來阻止它。
在 JMP 中,我想設置一個超時來降低風險,但是我一直無法讓其正常工作。 目前我將超時設置到 While(!(x << isReadEof), Wait(0.1)) 命令中,使 x 設置為 0,從而中斷運行程序。 但是當我這樣做時,JMP 通常會凍結一小段或更長的時間來修復(或修復其他問題)已經發生的背景問題。
有沒有辦法強制關閉 Run Program() 以及它調用的進程而不會凍結 JMP?
謝謝!
回复:優雅地終止運行程序()謝謝你的想法@Craige_Hales ! 我之前嘗試過 <
如果我找到一個可靠的東西,我會在這裡發布,但我會嘗試你的一些想法!
回复:優雅地終止運行程序()試試 rp <<寫FTP 程序的適當退出或退出命令,然後是 rp <<寫EOF . (儘管如您所說,FTP 程序似乎在連接丟失掛起時忽略了所有內容。)
當保存 RunProgram 對象(在我的示例中為 rp)的 JMP 變量被 JMP 結束覆蓋或破壞時,它將等待 ftp 程序完成。 我認為沒有辦法通過 FTP 標準輸入發送 ctrl-break。
我認為默認情況下丟失的連接掛起可能會持續長達 10 分鐘,並且可能是可配置的;我不確定這是在 FTP 程序中還是在 Windows 註冊表設置中。 對於我的測試,它似乎掛了大約 1 分鐘。
我所有的實驗都是用內置的 windows FTP 客戶端完成的。 可能還有其他客戶端可能具有不同的功能。