15

Is there a way to 'time out' a root shell (for example, in gnome-terminal) so that after a certain amount of time not issuing any commands, the shell exits?

I'm searching for a solution that works in bash on Fedora, and in ksh on OpenBSD.

Chris Down
  • 122,090
  • 24
  • 265
  • 262
LanceBaynes
  • 39,295
  • 97
  • 250
  • 349

2 Answers2

23

You can set set the TMOUT variable to a number in seconds that you wish for bash to wait before automatically logging out the shell if no command is run.

Arrowmaster
  • 1,684
  • 1
  • 11
  • 11
2

I know this question is in regards to Bash & Ksh. But I thought I would post something similar for csh/tcsh, for the record.

On FreeBSD, the default shell is tcsh. You can auto logout a session using the autologout feature of the tcsh shell.

The following will autologout a session after one minute of idle activity.

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

The tcsh(1) manpage describes it like this:

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.
Stefan Lasiewski
  • 19,264
  • 24
  • 70
  • 85