Comment peut-on expirer un shell racine après une certaine période de temps?

15

Existe-t-il un moyen de «temporiser» un shell racine (par exemple, dans gnome-terminal) afin qu'après un certain temps sans émettre de commandes, le shell se ferme?

Je recherche une solution qui fonctionne bashsur Fedora et kshsur OpenBSD.

LanceBaynes
la source

Réponses:

23

Vous pouvez définir la TMOUTvariable sur un nombre en secondes que vous souhaitez que bash attende avant de se déconnecter automatiquement du shell si aucune commande n'est exécutée.

Arrowmaster
la source
5
TMOUT est disponible avec bash et ksh.
camh
4
@camh Zsh aussi, je m'attendrais à ce que n'importe quel shell moderne le supporte.
Arrowmaster
1
C'est une grande chose que j'ai apprise aujourd'hui.
SHW
2

Je sais que cette question concerne Bash & Ksh. Mais je pensais que je publierais quelque chose de similaire pour csh / tcsh, pour mémoire.

Sur FreeBSD, le shell par défaut est tcsh. Vous pouvez déconnecter automatiquement une session à l'aide duautologout fonction du shell tcsh.

Ce qui suit déconnectera automatiquement une session après une minute d'activité inactive.

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

La page de manuel tcsh (1) le décrit comme ceci:

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
la source