Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
existe-t-il un moyen d'annuler un logout|exit|Ctrl-D ?

Bonjour,

Je suis en train de configurer le .bash_logout de ma session, afin que, lorsque je me déloggue, il me soit proposé d'éteindre la machine.

Cependant, je bute sur l'annulation de la déconnexion.
case $var in
oui) sudo halt -n ;;
non) clear ;;
*) echo "Il faut répondre oui, ou non"  # après cela, je voudrais rester loggué !
;;
esac

merci pour votre aide et/ou vos commentaires.

Poste le Monday 15 September 2008 03:31:55
Répondre     Citer    
Re: existe-t-il un moyen d'annuler un logout|exit|Ctrl-D ?

Pourquoi ne pas redéfinir l'action liée à ^D dans ~/.inputrc pour appeller directement ton script ?

C'est en forgeant qu'on devient forgeron, et c'est en sciant que Léonard De Vinci !

Mon site perso

Poste le Monday 15 September 2008 08:00:26
Répondre     Citer    
Re: existe-t-il un moyen d'annuler un logout|exit|Ctrl-D ?

C'est super. Merci.

Cependant, étant donné que le script éxécute dans un sous-shell (même si je le 'source'), si je dis "non", `exit` ne permet plus de quitter la console...

ah ! ha ha ha... ! <rires hytériques />

donc, pour l'instant j'en suis là :
[...]
non) clear
sudo kill -s TERM $(pgrep -u root login -t tty1) #il y a, entre autres, une condition sur tty = tty1 au début du script.
;;
[...]
mais ça provoque une 'segfault' du `clear_console` venant de .bash_logout.
Alors je l'ai enlevé.
Mais ça me laisse à penser que le `kill` est sans doute trop violent, et que donc il doit y avoir un moyen plus doux...
En plus, devoir sudo-er juste pour quitter la console, c'est lourd.

Quelle autre solution que `kill`...
?

Poste le Monday 15 September 2008 11:08:06
Répondre     Citer    
Re: existe-t-il un moyen d'annuler un logout|exit|Ctrl-D ?

OK
[...]
non) clear
kill -s 9 $(pgrep -u $USER bash -t tty1)
;;
[...]
Mais... ce `kill` ne me plait toujours qu'à moitié .

Poste le Monday 15 September 2008 14:03:03
Répondre     Citer    
Re: existe-t-il un moyen d'annuler un logout|exit|Ctrl-D ?

Bon, Ctrl-D ne veut pas se faire réaffecter par ~/.inputrc.

J'ai essayé différentes formes :
"^D": monscript\n
"\C-d": monscript\n
"Control-d": monscript\n


Ce n'est pas le script, puisque \C-x\C-x l'éxécute...
?

Poste le Monday 15 September 2008 18:37:58
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
existe-t-il un moyen d'annuler un logout|exit|Ctrl-D ?
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons