ttyとptsの違い
psコマンドのTTYの行では、以下のようにttyやptsが表示される。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2542 0.0 0.0 3816 496 tty1 Ss+ 10:23 0:00 /sbin/mingetty root 3176 0.0 0.3 66120 1596 pts/1 Ss 10:24 0:00 -bash root 3206 0.0 0.1 65648 1012 pts/1 R+ 10:24 0:00 ps aux
これらは、PCと接続している入出力用の端末を指している。
ptsはsshなどの仮想端末であり、ttyは実端末を意味している。
root@pide-FRONTIERDT:/dev/cpu# ls /dev/tty* /dev/tty /dev/tty23 /dev/tty39 /dev/tty54 /dev/ttyS11 /dev/ttyS27 /dev/tty0 /dev/tty24 /dev/tty4 /dev/tty55 /dev/ttyS12 /dev/ttyS28 /dev/tty1 /dev/tty25 /dev/tty40 /dev/tty56 /dev/ttyS13 /dev/ttyS29 /dev/tty10 /dev/tty26 /dev/tty41 /dev/tty57 /dev/ttyS14 /dev/ttyS3 /dev/tty11 /dev/tty27 /dev/tty42 /dev/tty58 /dev/ttyS15 /dev/ttyS30 /dev/tty12 /dev/tty28 /dev/tty43 /dev/tty59 /dev/ttyS16 /dev/ttyS31 /dev/tty13 /dev/tty29 /dev/tty44 /dev/tty6 /dev/ttyS17 /dev/ttyS4 /dev/tty14 /dev/tty3 /dev/tty45 /dev/tty60 /dev/ttyS18 /dev/ttyS5 /dev/tty15 /dev/tty30 /dev/tty46 /dev/tty61 /dev/ttyS19 /dev/ttyS6 /dev/tty16 /dev/tty31 /dev/tty47 /dev/tty62 /dev/ttyS2 /dev/ttyS7 /dev/tty17 /dev/tty32 /dev/tty48 /dev/tty63 /dev/ttyS20 /dev/ttyS8 /dev/tty18 /dev/tty33 /dev/tty49 /dev/tty7 /dev/ttyS21 /dev/ttyS9 /dev/tty19 /dev/tty34 /dev/tty5 /dev/tty8 /dev/ttyS22 /dev/ttyprintk /dev/tty2 /dev/tty35 /dev/tty50 /dev/tty9 /dev/ttyS23 /dev/tty20 /dev/tty36 /dev/tty51 /dev/ttyS0 /dev/ttyS24 /dev/tty21 /dev/tty37 /dev/tty52 /dev/ttyS1 /dev/ttyS25 /dev/tty22 /dev/tty38 /dev/tty53 /dev/ttyS10 /dev/ttyS26 root@pide-FRONTIERDT:/dev/cpu# ls /dev/pts/ 0 1 2 5 6 ptmx root@pide-FRONTIERDT:/dev/cpu#
のように/dev以下に確かにttyおよびptsに関するデバイスファイルが存在する。
tty(実端末)に関して
root 2542 0.0 0.0 3816 496 tty1 Ss+ 10:23 0:00 /sbin/mingetty root 2543 0.0 0.0 3816 500 tty2 Ss+ 10:23 0:00 /sbin/mingetty root 2544 0.0 0.0 3816 496 tty3 Ss+ 10:23 0:00 /sbin/mingetty root 2545 0.0 0.0 3816 496 tty4 Ss+ 10:23 0:00 /sbin/mingetty root 2546 0.0 0.0 3816 500 tty5 Ss+ 10:23 0:00 /sbin/mingetty root 2554 0.0 0.0 3816 496 tty6 Ss+ 10:23 0:00 /sbin/mingetty root 2594 2.8 2.1 90620 10844 tty7 Ss+ 10:23 0:01 /usr/bin/Xorg :
自分の環境では、ユーザ認証用のminegettyやXwindows用のXortがttyを利用していた。
いずれも入出力用の実端末を用いるので納得。
pts(仮想端末)に関して
[root@new-host ~]# tty /dev/pts/1
のようにして、現在の端末を表示できる。確かに仮想端末のptsとして認識されたいた。
この状態で、
echo hoge >/dev/pts/2
を実行すると、/dev/pts/2の端末上に急に
[root@new-host ~]# hoge
と出力される。
VNCで接続した場合は、
root 3339 0.0 3.5 60936 18144 pts/2 S 10:46 0:00 Xvnc :1 -desktop new-host:1 (root) -httpd /usr/share/vnc/classes -auth /root/.Xauthority -geometry 1024x768 -depth 16 -rfbwait 30000 -rfbauth /root/.vnc/passwd -rfbport 5901 -pn