Shell自动退出问题的解决

Posted dingdingfish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell自动退出问题的解决相关的知识,希望对你有一定的参考价值。

最近在密集的做实验,可是有个问题,如果中间出去吃个饭或别的什么事,回来发现shell自动退出了,例如从oracle用户退出到root用户下:

[oracle@btsi02 nfs]$ timed out waiting for input: auto-logout
[root@btsi02 opc]#

这样我不得不重新su到oracle用户,然后cd到工作目录。虽然操作很少,但多弄几次还是烦人。

控制超时的变量为TMOUT,你可以通过man bash找到他的说明:

If set to a value greater than zero, TMOUT is treated as the default timeout for the read builtin. The select command terminates if input does not arrive after TMOUT seconds when input is coming from a terminal. In an interactive shell, the value is interpreted as the number of seconds to wait for input after issuing the primary prompt. Bash terminates after waiting for that number of seconds if input does not arrive.

man builtin虽然没有TMOUT的帮助,但也很有用,以后再看

这里提到了TMOUT的两个作用,我是第二种情况:

  1. 读取的超时
  2. 交互式会话的超时

关于TMOUT的帮助也可以参考这里

我环境的设置如下,可以看到此设置对root无效:

[root@btsi02 opc]# echo $TMOUT

# su - oracle
Last login: Sun Oct 23 01:00:30 UTC 2022
[oracle@btsi02 ~]$ echo $TMOUT
600

其设置的位置如下:

# grep TMOUT /etc/profile
TMOUT=600

可以改成1小时,或者禁止超时:

TMOUT=600
TMOUT=

以上是关于Shell自动退出问题的解决的主要内容,如果未能解决你的问题,请参考以下文章

C# WinForm 不抱错,自动退出的情况

一个linux shell脚本 为啥 不能自动退出呢

后台启动es head,关闭shell后es head自动关闭

ssh连接断开后 shell进程退出

设置shell脚本执行错误自动退出

shell脚本怎么设置语句出错自动退出?(set -eset -o errexit)使用未初始化的变量自动退出?(set -uset -o nounset)(退出脚本)shell set