Dyrk.org
Do You Really Know

Echaper le CTRL^C

Publié le 23 février 2015 par #Ro0t

gros_de_pere_noel_trop_coince_dans_la_cheminee_sculpture_photo-r1c5fd9795416451381e5accb422d20de_x7saw_8byvr_512Hey,

 

Bon alors je vais vous publier mes derniers articles les amis, car la semaine prochaine je serais en voyage de noce, et vous l’aurez compris j’aurais bien plus de chose à faire, que d’écrire sur Dyrk ^^

 

Alors le sujet de cet article concerne les utilisateurs linuxien, qui souhaiteraient empêcher un utilisateur de couper leurs programmes avec le ctrl+c

 

 

Que fait réellement le ctrl+c, pour les Windowsiens, c’est une évidence, c’est un raccourcis pour copier … mais chez nous les Linuxiens … ça à une double utilité : mettre fin à un programme dans le terminal.

 

Le ctrl+c se contente d’envoyer un signal au système, qui répond en mettant fin à la tâche en court d’execution.

 

La technique consiste à indiquer une autre action à faire quand on envois un ctrl+c.

 

Je m’explique :

Nous avons un script « test.sh »

Un super script qui se contente d’afficher les logs en temps réel :

 

tail -f /var/log/apache/access.log

 

Nous voulons que ce script, ne soit interrompu sous aucun pretexte.

Nous allons donc au début de notre script ajouter la ligne :

trac « ./test.sh »  2 3

 

 

Cette commande magique, va simplement indiquer à notre système que si il reçoit des signaux de type 2 et 3 il ré-exécutera notre script au lieu de le quitter.
Le programme ne sera donc jamais éteint ^^

 

Bien sur, il existe un moyen subtile d’y mettre fin, en ouvrant un nouvel onglet, ou en se connectant en ssh sur la machine, pour y killer le processus en court ;)