Using expect and password auto-login to remote with ssh, when resizing the window, stty size report old size. Cause commands like vim and less mess up.
Asked
Active
Viewed 448 times
1
Kamil Maciorowski
- 19,242
- 1
- 50
- 94
user2204107
- 111
- 4
1 Answers
6
after a long time of search and test, finally find out it's expect that cause the issue, by default expect will not forward WINCH signal, this can fix by trap command like this
trap {
#fetch rows and cols from controlling terminal
#note [] is tcl way of call and here the stty is expect's not system's which not support "stty rows" to query rows
set rows [stty rows]
set cols [stty columns]
#send "echo size changed to $rows $cols\r"
#according to the man page, the variable spawn_out(slave,name) is set to the name of the pty slave device
stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH
after add this at begining of my expect file, every thing works fine.
thanks Anish Sneh from https://askubuntu.com/a/672919/1384831
want to answer at How to solve the issue that a Terminal screen is messed up? (usually after a resizing) but it is protected, so post a new question. wish it will save some others time.
user2204107
- 111
- 4
-
Your issue and your answer are specific to `expect`. The other question does not mention `expect` at all. IMO in such case asking a separate question is justified. – Kamil Maciorowski Sep 09 '21 at 15:48
-
2many people (at least me) don't realize it's expect's problem, that question is so hot and is the first search result of "remote shell resize issue" from google. I have tried all answers there without any luck and almost give up. recently, in some cases, I use `ssh` directly without `expect` and finally realize it's expect's issue. – user2204107 Sep 10 '21 at 02:00