GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce qui peut provoquer la génération de SIGHUP ?

Les signaux peuvent être envoyés en utilisant kill utilitaire ou tuer syscall.Bien sûr, vous pouvez essayer de savoir qui envoie ce signal ou déconnecte vos terminaux ou connexions réseau, mais il existe un moyen pratique plus simple de résoudre votre problème.

Lorsque le code est censé s'exécuter en tant que démon, mais qu'il ne l'est pas vraiment (tout comme le vôtre), il existe un wrapper qui peut transformer n'importe quel programme en démon. Surprise - ce wrapper s'appelle daemon ! Il a beaucoup d'options, probablement la plus importante pour vous, l'option de redémarrer automatiquement votre utilitaire s'il venait à mourir pour une raison quelconque.

Si cette commande n'est pas installée sur votre Ubuntu, juste sudo apt-get install daemon , et man daemon pour commencer.


Eh bien, il y a quelques choses à noter à propos de SIGHUP. Premièrement, son origine vient du concept de raccrochage, c'est-à-dire de perte de connexion à une console via quelque chose comme un modem. Dans le langage moderne, cela signifie généralement qu'il a perdu son tty de contrôle. A moins que vous n'ayez pris soin de vous détacher de votre tty, tout programme lancé dans un terminal donné recevra un SIGHUP à la fermeture du terminal. Voir ici pour plus de détails sur la façon de le faire dans votre programme. Les autres options incluent :

  • exécuter votre programme dans screen ou tmux
  • exécuter votre programme avec nohup ou un autre framework de démonisation

L'autre possibilité est que quelque chose envoie délibérément à votre processus un SIGHUP qui, par "tradition", est souvent utilisé pour signaler à un processus qu'il doit relire sa configuration.


Linux
  1. un programme peut-il lire sa propre section elf ?

  2. qu'est-ce que le démon dbus et pourquoi vlc en a besoin

  3. Que faire lorsque Ctrl + C ne peut pas tuer un processus ?

  4. Exécuter le script/programme lorsque le fichier change

  5. Déterminez si la sortie est stdout ou stderr

Qu'est-ce qu'un dotfile shell peut faire pour vous

Qu'est-ce que Bonjour sur mon ordinateur ? Guide PC du programme Windows 10 Bonjour

Strace/ptrace peut-il provoquer le plantage d'un programme ?

Que dois-je utiliser sous Linux pour rendre un programme python exécutable

Qu'est-ce qui peut provoquer une "Ressource temporairement indisponible" sur la commande sock send()

Qu'est-ce qui peut provoquer un signal 11 ?