有些需要长时间执行的后台任务,当然可以通过后台任务去执行或是tmux去执行;本例说的是通过配置iterm2的profiles 实现session 保持。
iTerm2 防止长时间不操作自动断开指南
背景
在使用 iTerm2 (特别是连接远程服务器) 进行工作时,如果长时间未有操作,有时会因为网络跨越了 "idle timeout"时间而导致 session 被自动断开。
为了防止这种情况,可以通过配置 iTerm2,在空闲时自动发送 keep-alive 符号,保持连接的活跃。
iTerm2 设置步骤
打开 iTerm2,进入 Preferences (首选单) > Profiles > 选择您的配置文件 (Default) > Session 栏。
-
在 Miscellaneous (其他) 区域,找到:
☑ When idle, send ASCII code
0every60seconds -
勾选该选项!
可以保持每 60 秒发送一次空白字符,用以激活连接,避免被远程服务器或中间网络被认为 "不活跃" 而强制断开。
如有需要,可将间隔时间选择调短(例如30秒),效果更好。
SSH 客户端配合设置提示 (可选)
为了增加终端不被断开的概率,可以同时修改 SSH 客户端配置:
打开:
~/.ssh/config增加如下内容:
Host *
ServerAliveInterval 30
ServerAliveCountMax 5
意思:
-
ServerAliveInterval 30:每 30 秒向服务器发送一次 keep-alive 请求 -
ServerAliveCountMax 5:如果连续 5 次未回应,将断开连接
总结
通过配置 iTerm2 自动发送 keep-alive 符号、增加SSH 配置应对日常空闲,可以有效避免长时间不操作终端的session被断开连接。配置了iTerm2的session后终端长时间不操作就会出现下面的字符,如果介意的话就保留ssh的配置就可以了

image.png