SAK dans ce cas signifie vraiment Secure Attention Key . Le message que vous voyez est un message du noyau défini dans drivers/tty/tty_io.c. SAK est une combinaison de touches qui garantit une connexion sécurisée pour un utilisateur sur la console. Sous Linux, SAK s'en assure en tuant tous les processus attachés au terminal sur lequel SAK est invoqué. Il est prévu que init
redémarrera alors le processus de connexion de confiance comme getty
suivi de login
ou serveur X avec le gestionnaire d'affichage .
Les PID listés sont bien les PID des threads de votre application CX_SC3
qui ont été tués par SAK.
fd#n opened to the tty
signifie que le processus/thread qui a été tué avait le descripteur de fichier n
ouvert sur le terminal sur lequel le SAK a été appelé.
Sous Linux, il existe deux façons d'invoquer SAK :
-
Via la touche magique SysRq - généralement Alt +SysRq +K (terminal virtuel) ou Pause K (console série). Ce n'est pas votre cas car vous avez déjà essayé de désactiver la magie SysRq par
echo 0 > /proc/sys/kernel/sysrq
et envoyer le Pause K séquence par accident est improbable. -
Via une séquence de touches définie (terminal virtuel) ou le signal d'arrêt (console série). La disponibilité de SAK sur une console série est contrôlée par
setserial
.
Le signal d'interruption sur une ligne série est l'envoi continu de valeurs d'espacement pendant un temps supérieur au temps d'envoi du caractère (y compris les bits de démarrage, d'arrêt et de parité). Dans votre cas, il est fort probable que la condition du signal Break apparaisse lors de l'arrêt de votre machine hôte. Veuillez essayer de désactiver le SAK sur votre port série sur l'appareil cible par setserial
:
setserial /dev/ttyS0 ^sak
Vous pouvez vérifier l'état de la fonctionnalité SAK sur le port série par setserial -g /dev/ttyS0
. Lorsqu'il est allumé, il affichera SAK
après Flags:
. Pour le réglage automatique de l'option après le démarrage, voir les scripts de démarrage qui sur les systèmes BusyBox sont généralement /etc/init.d/rcS
et /etc/rc.d/S*
ou cochez /etc/inittab
pour d'autres possibilités.
J'ai réussi à résoudre le problème avec l'aide de la réponse de pabouk. La solution basée sur le code que j'ai finalement découverte qui permet le SAK
L'indicateur à définir/désactiver sur le port série lors de l'ouverture à l'aide de l'API de l'espace utilisateur peut être trouvé sur stackoverflow ici Comment puis-je désactiver l'option SAK du port série sous Linux à l'aide de l'API de l'espace utilisateur ?