SAK v tomto případě skutečně znamená Secure Attention Key . Zpráva, kterou vidíte, je zpráva jádra definovaná v drivers/tty/tty_io.c. SAK je kombinace kláves, která zajišťuje bezpečné přihlášení uživatele na konzoli. V Linuxu to SAK zajišťuje zabitím všech procesů připojených k terminálu, na kterém je SAK vyvolán. Očekává se, že init poté restartuje proces důvěryhodného přihlášení jako getty následuje login nebo X server pomocí správce zobrazení .
Uvedené PID jsou skutečně PID vláken vaší aplikace CX_SC3 které byly zabity SAK.
fd#n opened to the tty znamená, že proces/vlákno, které bylo zabito, mělo deskriptor souboru n otevřen na terminálu, na kterém byl vyvolán SAK.
V Linuxu existují dva způsoby, jak vyvolat SAK:
-
Prostřednictvím magického klíče SysRq - obvykle Alt +SysRq +K (virtuální terminál) nebo Break K (sériová konzole). Toto není váš případ, protože jste se již pokusili deaktivovat magické SysRq od
echo 0 > /proc/sys/kernel/sysrqa odeslání Přestávky K náhodná sekvence je nepravděpodobná. -
Prostřednictvím definované sekvence kláves (virtuální terminál) nebo signálu přerušení (sériová konzole). Dostupnost SAK na sériové konzoli je řízena
setserial.
Signál přerušení na sériové lince je nepřetržité odesílání hodnot mezer po dobu delší, než je doba odesílání znaků (včetně start, stop a paritních bitů). Ve vašem případě je vysoce pravděpodobné, že se stav signálu Break objeví během vypínání vašeho hostitelského počítače. Zkuste prosím vypnout SAK na vašem sériovém portu na cílovém zařízení o setserial :
setserial /dev/ttyS0 ^sak
Stav funkčnosti SAK na sériovém portu můžete zkontrolovat pomocí setserial -g /dev/ttyS0 . Po zapnutí se zobrazí SAK po Flags: . Pro automatické nastavení volby po startu viz spouštěcí skripty, které jsou na systémech BusyBox obvykle /etc/init.d/rcS a /etc/rc.d/S* nebo zaškrtněte /etc/inittab pro další možnosti.
Problém se mi podařilo vyřešit pomocí paboukovy odpovědi. Řešení založené na kódu, které jsem nakonec objevil a které umožňuje SAK příznak, který má být nastaven/deaktivován na sériovém portu při otevírání pomocí uživatelského rozhraní API lze nalézt na stackoverflow zde Jak mohu deaktivovat možnost SAK sériového portu na Linuxu pomocí uživatelského rozhraní API?