端末の接続が切断されると、オペレーティング・システムのカーネルは端末の制御プロセスに SIGHUP を送信します。
ターミナルエミュレータが終了すると、誰がターミナルエミュレータの基盤となる疑似ターミナル(オペレーティングシステムカーネルまたはターミナルエミュレータ)の制御プロセスにSIGHUPを送信しますか?
ありがとうございます。
答え1
あなたの質問に答えがすでに含まれています。端末の接続が切断されると、カーネルは端末の制御プロセスに SIGHUP 信号を送信します。カーネルのドライバによって生成された端末の場合、ドライバがそれを示すときに端末の接続が切断されます。疑似ターミナルの場合、ターミナルマスターへのファイルハンドルが閉じられると(ターミナルエミュレータプロセスが明示的に閉じるか、ターミナルエミュレータプロセスが終了するため)、ターミナル接続が切断されます。
1制御プロセスは、端末で最初に実行されるすべてのプロセスです。より正確には、セッションリーダーのときに端末を開く最初のプロセス、または端末が開かれたときにセッションリーダーになる最初のプロセス(プロセスが残っている場合)。セッションリーダー)。
²主制御側はエミュレータ側です。スレーブは、端末で実行されるアプリケーションの側面です。
³複数のプロセスが端末の基本的な側面を開いたままにしている場合は、ファイルディスクリプタを閉じるにはファイルディスクリプタをすべて閉じる必要があります(おそらく死んでいます)。