Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

Envoi de signaux aux processus avec kill

La tuer La commande est utilisée pour envoyer des signaux aux programmes. Sa syntaxe la plus courante ressemble à ceci :



tuer [-signal] PID...

tuer [-signal] PID...


Si aucun signal n'est spécifié sur la ligne de commande, alors le TERME (Terminer) le signal est envoyé par défaut. Les tuer La commande est le plus souvent utilisée pour envoyer les signaux suivants :


Tableau 10-4 : Signaux communs


Numéro

Nom

Sens

1

HUP

Raccrocher. C'est un vestige du bon vieux temps où les terminaux étaient reliés à des télécommandes


ordinateurs avec lignes téléphoniques et modems. Le signal est utilisé pour indiquer aux programmes que le terminal de contrôle a « raccroché ». L'effet de ce signal peut être démontré en fermant une session de terminal. Le programme de premier plan exécuté sur le terminal recevra le signal et se terminera.

Ce signal est également utilisé par de nombreux programmes démons pour provoquer une réinitialisation. Cela signifie que lorsqu'un démon reçoit ce signal, il redémarre et relit son fichier de configuration. Le serveur Web Apache est un exemple de démon qui utilise le HUP signaler de cette façon.

2

INT

Interrompre. Remplit la même fonction que le Ctrl-c clé envoyée depuis le terminal. Il terminera généralement un programme.

9

KILL

Tuer. Ce signal est spécial. Alors que les programmes peuvent choisir de traiter les signaux qui leur sont envoyés de différentes manières, y compris en les ignorant tous ensemble, le KILL le signal n'est jamais réellement envoyé au programme cible. Au contraire, le noyau termine immédiatement le processus. Lorsqu'un processus est terminé de cette manière, il n'a aucune possibilité de « nettoyer » après lui-même ou de sauvegarder son travail. Pour cette raison, le KILL ne doit être utilisé qu'en dernier recours lorsque d'autres signaux de terminaison échouent.

15

TERME

Mettre fin. C'est le signal par défaut envoyé par le tuer commander. Si un programme est encore suffisamment « vivant » pour recevoir des signaux, il se terminera.

18

CONT

Continuer. Cela restaurera un processus après un STOP

signal.

19

STOP

Arrêter. Ce signal met un processus en pause sans se terminer. Comme le KILL signal, il n'est pas envoyé au processus cible et ne peut donc pas être ignoré.


Essayons le tuer commander:


[moi@linuxbox ~]$ xlogo &

[1] 13546

[moi@linuxbox ~]$ tuer -1 13546

[1]+ Raccrocher xlogo

[moi@linuxbox ~]$ xlogo &

[1] 13546

[moi@linuxbox ~]$ tuer -1 13546

[1]+ Raccrocher xlogo


Dans cet exemple, nous commençons le logo x programme en arrière-plan, puis envoyez-lui un HUP signaler avec tuerL’ logo x le programme se termine et le shell indique que le processus d'arrière-plan a reçu un signal de raccrochage. Il se peut que nous devions appuyer plusieurs fois sur la touche Entrée avant que le message n'apparaisse. Notez que les signaux peuvent être spécifiés soit par un numéro, soit par un nom, y compris le nom précédé des lettres « SIG » :



[moi@linuxbox ~]$ xlogo &

[1] 13601

[moi@linuxbox ~]$ tuer -INT 13601 [1]+ Interruption xlogo [moi@linuxbox ~]$ xlogo &

[1] 13608

[moi@linuxbox ~]$ tuer -SIGINT 13608

[1]+ Interruption xlogo

[moi@linuxbox ~]$ xlogo &

[1] 13601

[moi@linuxbox ~]$ tuer -INT 13601 [1]+ Interruption xlogo [moi@linuxbox ~]$ xlogo &

[1] 13608

[moi@linuxbox ~]$ tuer -SIGINT 13608

[1]+ Interruption xlogo


Répétez l'exemple ci-dessus et essayez les autres signaux. N'oubliez pas que nous pouvons également utiliser des spécifications de travail à la place des PID.

Les processus, comme les fichiers, ont des propriétaires, et vous devez être le propriétaire d'un processus (ou le super-utilisateur) afin de lui envoyer des signaux avec tuer.

En plus de la liste des signaux ci-dessus, qui sont le plus souvent utilisés avec tuer, il existe d'autres signaux fréquemment utilisés par le système. Voici une liste d'autres signaux courants :


Tableau 10-5 : Autres signaux communs


Numéro

Nom

Sens

3

QUITTER

Quittez.

11

SEGV

Violation de segmentation. Ce signal est envoyé si un programme utilise illégalement la mémoire, c'est-à-dire s'il a essayé d'écrire quelque part où il n'était pas autorisé.

20

TSTP

Arrêt terminal. C'est le signal envoyé par le terminal lorsque le Ctrl-z la touche est enfoncée. Contrairement au STOP signal, le TSTP le signal est reçu par


image

le programme, mais le programme peut choisir de l'ignorer.


image

28 Changement de fenêtre de TREUIL. C'est le signal envoyé par le

système lorsqu'une fenêtre change de taille. Certains programmes, comme top et les moins répondront à ce signal en se redessinant pour s'adapter aux nouvelles dimensions de la fenêtre.


image


Pour les curieux, une liste complète des signaux peut être consultée avec la commande suivante :



[moi@linuxbox ~]$ kill -l

[moi@linuxbox ~]$ kill -l


Meilleur système d'exploitation Cloud Computing chez OnWorks :