GNU/Linux >> Tutoriels Linux >  >> Linux

UNIX / Linux :3 façons d'envoyer un signal aux processus

Question :Comment puis-je envoyer un signal à un autre processus ? Pouvez-vous m'expliquer toutes les options disponibles pour envoyer des signaux à un processus dans un environnement UNIX/Linux ?

Répondre  :Vous pouvez envoyer divers signaux aux processus en utilisant l'une des méthodes expliquées dans cet article.

1. Envoyer un signal à un processus à l'aide de Kill

Utilisez la commande kill pour envoyer un signal à un processus. Par exemple, si vous souhaitez envoyer le signal USR1 au processus "a.out", procédez comme suit.

$ ps -C a.out
  PID TTY          TIME CMD
 3699 pts/1    00:00:00 a.out

$ kill -s USR1 3699

Remarque  :Reportez-vous à 4 façons de tuer un processus - kill, killall, pkill, xkill.

2. Envoyer un signal à un processus à partir d'un autre processus

Vous pouvez utiliser l'appel système UNIX kill (à partir d'un programme C) pour envoyer un signal d'un processus à un autre. L'extrait de code C suivant montre comment utiliser la commande kill.

L'appel système Kill prend deux arguments :1) le PID (ID de processus) du processus qui doit être signalé 2) le signal qui doit être envoyé au processus. La commande Kill renvoie 0 lorsqu'elle réussit.

int send_signal (int pid)
{
        int ret;
        ret = kill(pid,SIGHUP);
        printf("ret : %d",ret);

}

3. Envoyer un signal à un processus à partir du clavier

Lorsqu'un processus est en cours d'exécution sur le terminal, vous pouvez envoyer un signal à ce processus à partir du clavier en utilisant une combinaison spécifique de touches. Voici quelques exemples.

  • SIGINT (Ctrl + C) – Vous le savez déjà. Appuyer sur Ctrl + C tue le processus de premier plan en cours d'exécution. Cela envoie le SIGINT au processus pour le tuer.
  • Vous pouvez envoyer le signal SIGQUIT à un processus en appuyant sur Ctrl + \ ou Ctrl + Y

Vous pouvez afficher les mappages de touches qui envoient un signal spécifique à un processus à l'aide de la commande "stty -a" comme indiqué ci-dessous.

$ stty -a | grep intr
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;

Linux
  1. 30 exercices de processus Linux pour les administrateurs système

  2. 4 façons d'exécuter un script shell sous UNIX / Linux

  3. Fondamentaux des signaux Linux - Partie I

  4. Processus UNIX / Linux :fonction C fork()

  5. Gestion des processus dans Ubuntu Linux

5 façons rapides de tuer un processus sous Linux

Surveillance des processus sous Linux

Linux contre Unix

Commandes pour la gestion des processus sous Linux

Comment envoyer des processus en arrière-plan sous Linux

Qu'est-ce qu'un processus arrêté sous Linux ?