Почему при использовании команды ps существует три (должно быть два) процесса, связанных с экраном?
Вы можете видеть, что есть три процесса, которые связаны с экранной командой:
[world]$ ps auxf
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
hugemeow 28938 0.0 0.0 66080 1692 ? S 23:03 0:00 sshd: hugemeow@pts/0
hugemeow 28941 0.0 0.0 102040 2172 pts/0 Ss 23:03 0:00 \_ -bash
**hugemeow 30231 0.0 0.0 19436 1172 pts/0 S+ 23:08 0:00** \_ tmux -L l a -d
hugemeow 15696 0.0 0.1 124804 18480 ? S 22:18 0:01 php5.cgi
hugemeow 20388 0.0 0.0 19600 1376 ? Ss 04:47 0:05 tmux -L l
hugemeow 20389 0.0 0.0 102064 2040 pts/2 Ss 04:47 0:00 \_ -bash
**hugemeow 20440 0.0 0.0 107424 1004 pts/2 S+ 04:48 0:00** | \_ screen -dr l // 1
hugemeow 20524 0.0 0.0 102060 2048 pts/3 Ss 04:48 0:00 \_ -bash
hugemeow 20534 0.0 0.0 18856 1148 pts/3 S+ 04:48 0:01 \_ top
hugemeow 8257 0.0 0.0 107948 996 ? Ss Aug13 0:12 SCREEN -S cmd // 2
hugemeow 8258 0.0 0.0 102084 1528 pts/11 Ss+ Aug13 0:00 \_ /bin/bash
hugemeow 25035 0.0 0.0 102076 2052 pts/1 Ss+ Aug14 0:00 \_ /bin/bash
**hugemeow 24542 0.0 0.0 108072 1040 ? Ds Aug13 0:21 SCREEN** -S l // 3
hugemeow 24545 0.0 0.0 102124 1564 pts/8 Ss Aug13 0:00 \_ /bin/bash
hugemeow 25589 0.0 0.0 18840 1160 pts/8 S+ Aug14 0:02 | \_ top
hugemeow 25894 0.0 0.0 102124 1616 pts/9 Ss Aug13 0:00 \_ /bin/bash
hugemeow 30249 0.0 0.0 98740 1008 pts/9 R+ 23:08 0:00 \_ ps auxf
но при использовании команды screen -ls вы можете обнаружить только два экранных процесса:(так почему ps auxf показывает 3 процесса?
кстати, команда wy screen имеет какое-то отношение к сокетам?
screen -ls
There are screens on:
8257.cmd (08/13/2012 08:48:53 PM) (Detached)
24542.l (08/13/2012 07:52:30 PM) (Attached)
2 Sockets in /var/run/screen/S-hugemeow
ls /dev/pts -l
total 0
crw--w---- 1 hugemeow tty 136, 0 2012-08-15 23:15 0
crw--w---- 1 hugemeow tty 136, 1 2012-08-14 11:08 1
crw--w---- 1 hugemeow tty 136, 11 2012-08-14 11:06 11
crw------- 1 hugemeow tty 136, 2 2012-08-15 23:15 2
crw--w---- 1 hugemeow tty 136, 3 2012-08-15 23:15 3
crw--w---- 1 hugemeow tty 136, 8 2012-08-15 23:15 8
crw--w---- 1 hugemeow tty 136, 9 2012-08-15 23:15 9
1 ответ
Вы вроде как должны думать об экране, как о клиенте и сервере. Когда вы начинаете новый сеанс экрана, у вас есть процесс, действующий как клиент, с которым вы взаимодействуете, и второй процесс, который является родителем всех окон / программ, которые вы создаете / запускаете. При отключении вашего клиента процесс закрывается.
В вашей системе с тремя процессами у вас запущены два сеанса экрана и один экранный клиент, подключенный к одному из этих сеансов.
Сеансы экрана - это процессы с ЭКРАНОМ во всех заглавных буквах. Клиентский процесс является строчной версией.