只读 TMOUT 变量 – 在没有活动时禁用自动退出 shell 的解决方法

只读 TMOUT 变量 – 在没有活动时禁用自动退出 shell 的解决方法

我们这里有一个只读的 Bash 变量。我不允许取消设置该变量。

$ echo $TMOUT
1800

作为解决方法,我写了这些行(我的会话不会退出)

#!/usr/bin/perl

$|++;
while (1) { print "\e[0n"; sleep 120; }

CentOS7/RHEL7 存储库中是否有一个具有类似功能(如上面的 Perl 代码)的官方软件包 (rpm)?我不喜欢打开vim编辑器,我希望有一个命令。

答案1

将其添加到 .bash_profile 的开头吗?

if [ ! -z "$TMOUT" ]; then
  env -i bash --init-file ~/.bash_profile
fi

如果您因违反系统管理员的超时规则而让大量旧会话继续运行,请当心系统管理员的愤怒。

答案2

事情是这样的,
当会话变量是“只读”你必须用以下命令替换当前的 shell 进程“执行”
所以,你的问题的答案是:

$> exec env TMOUT=0 bash

但我建议设置更高的超时值

$> exec env TMOUT=3600 bash

答案3

您可以从命令行发出 perl 命令...

perl -e '$|++; while (1) { print "\e[0n"; sleep 120; }'

或者你可以在 shell 中执行相同的操作(a sh/bash示例):

while sleep 120; do printf '\33[0n'; done

或者你可以使用watch

watch -n 120 printf '\33[0n'

答案4

导出TMOUT=0

顶部

您将进行一些活动,并且您的会话将保留,您可以看到它运行了多长时间。

相关内容