Как можно разорвать корневую оболочку через определенный промежуток времени?

15

Есть ли способ «тайм-аута» корневой оболочки (например, in gnome-terminal), чтобы через определенное время без каких-либо команд оболочка закрывалась?

Я ищу решение, которое работает в bashFedora и в kshOpenBSD.

LanceBaynes
источник

Ответы:

23

Вы можете установить TMOUTпеременную в число в секундах, которое вы хотите, чтобы bash подождал, прежде чем автоматически выйдет из оболочки, если никакая команда не запущена.

Arrowmaster
источник
5
TMOUT доступен как с bash, так и с ksh.
Camh
4
@camh Zsh, я ожидал бы, что любая современная оболочка поддержит это.
Arrowmaster
1
Это замечательная вещь, которую я узнал сегодня.
ШВ
2

Я знаю, что этот вопрос касается Bash & Ksh. Но я думал, что выложу нечто подобное для csh / tcsh, для записи.

В FreeBSD оболочкой по умолчанию является tcsh. Вы можете автоматически выйти из сеанса, используя autologoutфункцию оболочки tcsh.

Следующее будет автоматически выводить сеанс после одной минуты бездействия.

freebsd82# set -r autologout=’1′
(Wait one minute)
freebsd82# auto-logout
Connection to freebsd82 closed.

Tcsh (1) страница руководства описывает это следующим образом :

autologout (+)
     The first word is the number of minutes  of  inactivity  before
     automatic  logout.   The  optional second word is the number of
     minutes of inactivity before automatic locking.  When the shell
     automatically logs out, it prints `auto-logout', sets the vari-
     able logout to `automatic' and exits.  When the shell automati-
     cally locks, the user is required to enter his password to con-
     tinue working.  Five incorrect  attempts  result  in  automatic
     logout.  Set to `60' (automatic logout after 60 minutes, and no
     locking) by default in login and superuser shells, but  not  if
     the shell thinks it is running under a window system (i.e., the
     DISPLAY environment variable is set), the tty is  a  pseudo-tty
     (pty)  or  the shell was not so compiled (see the version shell
     variable).  See also the afsuser and logout shell variables.
Стефан Ласевский
источник