SAK bedeutet in diesem Fall wirklich Secure Attention Key . Die Nachricht, die Sie sehen, ist eine Kernel-Nachricht, die in drivers/tty/tty_io.c definiert ist. SAK ist eine Tastenkombination, die eine sichere Anmeldung für einen Benutzer auf der Konsole gewährleistet. Unter Linux stellt SAK dies sicher, indem es alle Prozesse beendet, die mit dem Terminal verbunden sind, auf dem SAK aufgerufen wird. Es wird erwartet, dass init
wird dann den vertrauenswürdigen Anmeldeprozess wie getty
neu starten gefolgt von login
oder X-Server mit Display-Manager .
Die aufgelisteten PIDs sind tatsächlich PIDs von Threads Ihrer Anwendung CX_SC3
die von SAK getötet wurden.
fd#n opened to the tty
bedeutet, dass der beendete Prozess/Thread den Dateideskriptor n
hatte für das Terminal geöffnet, auf dem der SAK aufgerufen wurde.
Unter Linux gibt es zwei Möglichkeiten, SAK aufzurufen:
-
Durch die magische SysRq-Taste - typischerweise Alt +SysRq +K (virtuelles Terminal) oder Break K (serielle Konsole). Dies ist nicht Ihr Fall, da Sie bereits versucht haben, die magische SysRq zu deaktivieren von
echo 0 > /proc/sys/kernel/sysrq
und Senden des Break K zufällige Reihenfolge ist unwahrscheinlich. -
Durch eine definierte Tastenfolge (virtuelles Terminal) oder das Break-Signal (serielle Konsole). Die SAK-Verfügbarkeit auf einer seriellen Konsole wird durch
setserial
gesteuert .
Das Unterbrechungssignal auf einer seriellen Leitung ist das kontinuierliche Senden von Abstandswerten über einen längeren Zeitraum als die Zeichensendezeit (einschließlich Start-, Stopp- und Paritätsbits). In Ihrem Fall ist es sehr wahrscheinlich, dass der Zustand des Break-Signals beim Herunterfahren Ihres Host-Computers auftritt. Bitte versuchen Sie, den SAK an Ihrem seriellen Anschluss auf dem Zielgerät mit setserial
auszuschalten :
setserial /dev/ttyS0 ^sak
Sie können den SAK-Funktionsstatus an der seriellen Schnittstelle mit setserial -g /dev/ttyS0
überprüfen . Wenn es eingeschaltet ist, wird SAK
angezeigt nach Flags:
. Für die automatische Einstellung der Option nach dem Booten siehe die Startskripte, die auf BusyBox-Systemen normalerweise /etc/init.d/rcS
sind und /etc/rc.d/S*
oder überprüfen Sie /etc/inittab
für andere Möglichkeiten.
Ich habe es geschafft, das Problem mit Hilfe von Pabouks Antwort zu lösen. Die codebasierte Lösung, die ich endlich entdeckt habe und die SAK
zulässt Das Flag, das beim Öffnen mit der Userspace-API an der seriellen Schnittstelle gesetzt/nicht gesetzt werden soll, finden Sie hier auf Stackoverflow. Wie kann ich die SAK-Option der seriellen Schnittstelle unter Linux mit der Userspace-API deaktivieren?