Nous avons ici une variable Bash en lecture seule. Je ne suis pas autorisé à annuler cette variable.
$ echo $TMOUT
1800
Pour contourner ce problème, j'ai écrit ces lignes (pour que ma session ne se termine pas)
#!/usr/bin/perl
$|++;
while (1) { print "\e[0n"; sleep 120; }
Existe-t-il un package officiel (rpm) similaire (comme le code Perl ci-dessus) dans un référentiel CentOS7 / RHEL7? Je n'aime pas ouvrir un éditeur vim, je souhaite une commande.
bash
rpm
repository
timeout
Ivanov
la source
la source
cat
lorsque vous vous éloignez de votre session. Et puis ^ C à votre retour.exec env TMOUT=0 bash
Réponses:
Vous pouvez émettre des commandes perl à partir de la ligne de commande ...
perl -e '$|++; while (1) { print "\e[0n"; sleep 120; }'
ou vous pourriez faire la même chose dans le shell (un
sh
/bash
exemple):while sleep 120; do printf '\33[0n'; done
Ou vous pouvez utiliser
watch
:watch -n 120 printf '\33[0n'
la source
printf '\33[0n'
? je sais ce qu'est la ligne de commandeprintf
. mais qu'est-ce qui est imprimé?\33
est un raccourci pour la touche d'échappement<esc>[0n
n'est pas un code d'échappement ANSI connu, j'imagine que c'était une faute de frappe et devrait l'être<esc>[0m
qui réinitialise la couleur du terminal pour les applications / terminaux / tty qui prennent en charge les codes d'échappement ANSI.Ajoutez-le au début de votre .bash_profile?
Méfiez-vous de la colère des administrateurs système si vous laissez un million de sessions anciennes en cours d'exécution en raison de la défaite de leurs décisions d'expiration.
la source
Voici la chose,
lorsque la variable de session est en "lecture seule", vous devez remplacer le processus shell actuel par la commande par "exec".
Ainsi, la réponse à votre question est:
Mais je recommande de définir une valeur de délai d'attente plus élevée
la source
Pourquoi ne passez-vous pas à une session non interactive?
la source
Dans mon cas, il est défini dans /etc/profile.d/bash_autologout.sh:
Pour le trouver, j'ai fait:
la source