AWS 上的用户 shell 在 20 分钟内死亡

AWS 上的用户 shell 在 20 分钟内死亡

我使用 AWS 服务器,会话bash下的 shell ()tmux在 20 分钟不活动后就会消失。

我这样做ssh -t myserver tmux new-session,然后C-b d分离。

然后

$ while sleep 60; do
    date -u +'%F %T'
    ssh myserver tmux ls 2>/dev/null
  done

大约 20 分钟后,会话消失。

但是,如果我有两个窗口tmux并在其中一个窗口中启动另一个进程(lessvisudo su -或...),那么第二个窗口(普通bash)会在 20 分钟后消失,而第一个窗口(vim&c)将继续存在。

我以前使用过 AWS(与tmuxscreen),这是我第一次看到这种行为。

我该如何避免这种情况?

ssh附言:这与超时无关();当 shell 被终止时,ServerAliveInterval我仍未建立连接。ssh

PPS。我问过这个问题服务器故障但什么也没得到,我希望它在这里更具相关性。

答案1

我遇到了类似的问题,但它不一定与 AWS 相关。

我查看了一下/etc/profile,发现export TMOUT=$((60*60))。从bash 文档

如果设置为大于零的值,则 TMOUT 被视为 read 内置命令的默认超时(请参阅 Bash 内置命令)。如果在输入来自终端时,经过 TMOUT 秒后仍未收到输入,则 select 命令(请参阅条件构造)将终止。

在交互式 shell 中,该值被解释为发出主提示后等待一行输入的秒数。如果没有收到完整的一行输入,Bash 将在等待该秒数后终止。

添加unset TMOUT$USER/.profile(或.bash_profile.bash_login等)即可修复。

相关内容