Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: beliconfused в Aug 24, 2017, 22:44



Титла: /proc question
Публикувано от: beliconfused в Aug 24, 2017, 22:44
 здравейте, опитвам се да разбера повече за /proc.

 python script :

Код:
import time

with open("some_file", "w") as f:
    f.write("whatever")
    time.sleep(10000000)

 /proc/pid/fd

lrwx------. 1 root root 64 Aug 24 22:37 0 -> /dev/pts/3
lrwx------. 1 root root 64 Aug 24 22:37 1 -> /dev/pts/3
lrwx------. 1 root root 64 Aug 24 22:37 10 -> socket:[26263]
lrwx------. 1 root root 64 Aug 24 22:36 2 -> /dev/pts/3
lrwx------. 1 root root 64 Aug 24 22:37 22 -> socket:[26452]
l-wx------. 1 root root 64 Aug 24 22:37 3 -> /tmp/file

0, 1, 2 i /tmp/file са ясни.

какви са тези sockets и защо са счупени sl ?

Thanks.


Титла: Re: /proc question
Публикувано от: 4096bits в Aug 25, 2017, 10:51
Сокетите са просто отворени портове, които обикновено се исползват за комуникация между процеси или програми.


Титла: Re: /proc question
Публикувано от: 4096bits в Aug 25, 2017, 13:53
Можеш да провериш през топ и греп за питонски процес, но може да имаш и няколко други, освен твоето скриптче.


Титла: Re: /proc question
Публикувано от: 10101 в Aug 25, 2017, 14:00
netstat -p


Титла: Re: /proc question
Публикувано от: beliconfused в Aug 25, 2017, 14:41
Sorry za latinicata, mersi i na dvama vi. Samo ne razbiram zashto mu e na moqt process (super basic e ) tezi socketi, s kogo si komunikira toi ? Testvah v izcqlo konzolen variant i nqma nikakvi socketi, znachi e neshto grafichno :)


Титла: Re: /proc question
Публикувано от: ddantgwyn в Aug 25, 2017, 15:22
Sorry za latinicata, mersi i na dvama vi. Samo ne razbiram zashto mu e na moqt process (super basic e ) tezi socketi, s kogo si komunikira toi ? Testvah v izcqlo konzolen variant i nqma nikakvi socketi, znachi e neshto grafichno :)

Щом е графично, значи ползваш X-сървър, а в него комуникацията се осъществява през протокола TCP.

Погледни изхода от командата netstat. Всеки ред, който започва с unix е резултат от такава вътрешна комуникация. Обикновено накрая на реда е дадено и името на процеса, който е отговорен за него:

Код:
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ]         DGRAM                    20794    /var/run/chrony/chronyd.sock

Иначе socket представлява комбинация от IP_address:Port_number и дефинира единия край на някакъв комуникационен канал. Някъде се нарича и транспортен адрес, но според мен все още ти е рано за тези неща :)


Титла: Re: /proc question
Публикувано от: 4096bits в Aug 25, 2017, 15:51
Скрипта ти не отваря сокет, а просто държи отворен един файл. Тези сокети не са от него