0
假設我使用TCL腳本創建了一個SSH會話。如何從另一個TCL腳本與此會話進行交互?是否有可能連接到另一個腳本已經產生的進程?TCL連接到現有的進程
假設我使用TCL腳本創建了一個SSH會話。如何從另一個TCL腳本與此會話進行交互?是否有可能連接到另一個腳本已經產生的進程?TCL連接到現有的進程
最簡單的方法將是使用GNU screen
是SSH會話內。然後,您可以在期望的腳本中斷開它,然後從另一個ssh會話重新連接它(當然,這可能在您期望的腳本中)。
使用screen
本身是superuser.com的一個主題,但從expect
的角度來看,它並不比自動執行ssh會話之前的任何事情複雜得多;也許多一點工作(尤其是當你需要處理創建一個新的屏幕會話和發現+連接到現有的屏幕會話之間的差異時),但它並不是那麼重要。絕對不會試圖以其他方式模仿行爲!
你做不是想嘗試運行屏幕內的ssh會話(即我推薦的相反)。這是因爲網絡連接是最有可能被外部干預所摧毀的東西。
您可以在本地屏幕中運行您的期望腳本。這超出了我們在這裏討論的範圍。
請注意,期望和屏幕都使用Unix虛擬終端系統的相當廣泛,而虛擬終端是一種嚴格有限的資源。不要過度使用這些設施,否則最終會出現奇怪的問題。 –