一、查看端口号和进程号的对应关系
netstat -anpt | grep 1113
tcp 0 0 0.0.0.0:1113 0.0.0.0:* LISTEN 4413/inputoutput_1
tcp 0 0 127.0.0.1:55342 127.0.0.1:1113 ESTABLISHED 4573/telnet
tcp 0 0 127.0.0.1:1113 127.0.0.1:55342 ESTABLISHED 4574/inputoutput_1
处于listen
状态的为父进程,父进程accept
一个新连接后会fork
一个子进程与客户端连接。之后父进程会close(connfd)
,子进程会close(listenfd)
。
二、查看进程对应的伪终端号
ps -aux | grep 4413
root 4413 0.0 0.0 4364 656 pts/7 Ss+ 08:23 0:00 /root/NetBeansProjects/InputOutput_1/dist/Debug/GNU-Linux/inputoutput_1 127.0.0.1
三、查看进程的状态和关系
ps -t pts/7 -o pid,ppid,tty,stat,args,wchan
PID PPID TT STAT COMMAND WCHAN
4413 4412 pts/7 Ss+ /root/NetBeansProjects/Inpu inet_csk_accept
4574 4413 pts/7 S+ /root/NetBeansProjects/Inpu wait_woken
stat 为S,表明进程在等待某些资源而睡眠。进程处于睡眠状态时WCHAN
列指出相应的条件。Linux在进程阻塞于accept
或connect
时,输出wait_for_connect
;在进程阻塞于套接字输入或输出时,输出tcp_data_wait
;在进程阻塞于终端IO时,输出read_chan
.
详见Unix网络编程第5章