More rewords

This commit is contained in:
Yorick Barbanneau 2022-11-16 00:54:51 +01:00
parent ba9ce8fec9
commit 416631327e

View file

@ -10,13 +10,13 @@ a eu un peu de succès. Comme toute les séries B un peu populaire, il lui falla
une suite. Et bien la voici!
Dans cette suite, il va être question de signaux, de **"trap"** et bien entendu
de Bash.
de *Bash*.
## Dis, c'est quoi un signal
Un signal est ue sorte de notification envoyée à un processus lorsqu'un
événement particulier a eu lieu. Plus concrètement, lorsque un programme ne
réponds pas dans votre terminal et que vous faites Ctrl+C, le système envoi le
événement particulier a eu lieu. Plus concrètement, lorsqu'un programme ne
répond pas dans votre terminal et que vous faites Ctrl+C, le système envoi le
signal SIGINT au processus en cours lui signifiant d'interrompre séance tenante
toute action. Chaque signal est associé à un numéro
@ -35,11 +35,12 @@ SIGKILL | 9 | Term | Signal ”KILL”
## Les utiliser dans Bash : trap
Paf, l'intrigue arrive comme ça d'un coup: nous allons utiliser la commande
`trap` pour gérer les signaux. La commande est plutôt simple à utiliser :
Paf, l'intrigue arrive comme ça d'un coup : nous allons utiliser la commande
`trap` pour gérer les signaux. C'est une commande interne à *Bash* simple à
utiliser :
```bash
trap "<commande>" <list_signaux>
trap "<commande>" <liste_signaux>
```
Attention cependant, tous les signaux ne peuvent pas être piégé: `SIGKILL` par
@ -113,6 +114,7 @@ do
sleep 1
done
```
Ce script est disponible en suivant [ce lien]({attach}files/premier_script.sh)
La connexion principale est intiée par la fonction `connect`. Juste en dessous
de l'appel de cette dernière nous trouvons notre instruction `trap`. Elle
@ -148,7 +150,7 @@ Close SSH main connection
```
Nous pouvons voir que notre fonction `cleanup` a bien été appelée à la fin de
notre script exécutée par le signal `EXIT`
notre script exécutée lors de la réception du signal `EXIT`
### Générer une erreur
@ -241,6 +243,9 @@ $ echo $?
Le message de notre fonction `process_int` s'affiche et la fonction `cleanup` se
lance automatiquement.
Le script modifié est disponible en suivant [ce
lien]({attach}files/second_script.sh)
## Vérifier la connexion au master avec un signal
Il est possible d'utiliser tout un tas de signaux et de les intercepter avec
@ -288,6 +293,9 @@ do
done
```
Le script modifié est disponible en suivant [ce
lien]({attach}files/troisieme_script.sh)
### Lancer le script
D'abord lançons le script et notons le numéros de PID:
@ -305,8 +313,8 @@ Puis dans un second terminal il nous suffit d'envoyer le signal:
kill -USR1 9499
```
Le signal est alors reçu par notre script qui va donc exécuter la fonction
attachée :
Retour sur notre premier teminal, nous pouvons voir que le signal est alors reçu
par notre script qui va exécuter la fonction attachée :
```none
[...]
@ -327,5 +335,10 @@ est similaire.
**Le nettoyage des traces laissées par un script** est la principale utilisation
documentée ci-et-là dans différents tutoriaux. Mais les possibilités offertes
par ce système de communication inter-processus dans vos script vont bien au
delà de ce simple usage. J'espère vous l'avois montré ici.
par ce système de communication inter-processus dans vos script **vont bien au
delà de ce simple usage**. J'espère vous l'avois montré ici.
## Crédits
L'image en entête de cet article est tirée du film *Star Wars, le retour du
Jedi* © Lucasfilms Ltd, Disney