J'ai un programme développé en C. Ce programme contient 2 sous-threads. Parfois, lorsque j'essaie d'arrêter mon application avec kill -15 <pid of main thread>
l'application ne se termine pas. Et je ne peux voir que le pid du thread principal dans la sortie ps aux
(Les pids des sous-thèmes ne sont pas affichés dans le outpout du ps aux
). Et continuer à tuer le pid restant avec kill -15 <pid>
ne provoque pas la fin de ce processus. Seul kill -9 <pid>
provoquera la fin du processus.Pourquoi "kill -15" échoue parfois?
Ce problème se produit 3 fois dans 1000 essais.
- Le système d'exploitation est Linux OpenWRT
- La version du noyau est 2.6.30
- Libs:
libuClibc-0.9.30.1.so
etlibpthread-0.9.30.1.so
S'il vous plaît ne considère pas ce sujet avec dupliqué this one, parce que mon programme ne contient un gestionnaire de sigaction.
- Le système d'exploitation est Linux OpenWRT - La version du noyau est 2.6.30 - Libs: 'libuClibc-0.9.30.1.so' et' libpthread-0.9.30.1.so' – MOHAMED
Oh. Est-ce que uClibc est configuré pour LinuxThreads plutôt que NPTL? Si oui, il fait toutes sortes de choses cassées avec la gestion des signaux et vous n'avez vraiment aucun espoir de le faire fonctionner correctement. –
Merci beaucoup pour la réponse. Donc je dois trouver une autre solution. Pourriez-vous fournir des liens de sujets qui parlent de ce problème? – MOHAMED