ttyとptyとpts
概要
擬似デバイス (Pseudo-devices) とはデバイスファイルのように見せかけているが、その先には具体的なハードウェアが結びつけられていないデバイススペシャルファイル
sttyコマンドでtty/ptyデバイスドライバの挙動を変更することができる
pty
pseudo terminal
疑似端末
ソフトウェアで実装されたテキストインタフェースで他のプロセスとかにアタッチされて、本当のターミナルとやり取りする
パスワード入力など、対話入力が必要な時にはPTYが必要。
一方的にコマンドを送って結果を受け取るだけであれば必要ない
A pts is the slave part of a pty. A ptmx is the master part of a pty.
tty
teletype
実端末
ttyコマンドで確認した時のttyとptsの違い
tty→実端末
自分のmacのターミナルで接続しているときとか
pts→仮想端末
sshなどでリモート接続しているとき
自分のmacのターミナルとGCEインスタンスにssh接続してttyコマンドで確認する実験
https://gyazo.com/0eb6a65fd110a926be18cc49b041211d
ptsとptmx
ssh接続で実際のログインシェルに入力が届くまで
ネットワーク通信はsshの暗号化で保護される
OSの仲介が発生する
tty/ptyドライバ
ログインシェルはptsファイルと入出力が繋がっている
https://gyazo.com/c168b9265dfedb9984ecee9331b69da1
例
sshを切断した時に実行していたコマンドはどうなる?
→終了する
ログインシェルが終了することになるので、シェルから起動された子プロセスにSIGHUPが送信されるため
→nohupで回避
参照
/diary-hiroki/2021/4/30
What is tty/pty/pts
Qiita:TTY/PTYに関するクイズ