Как сетевые пакеты передаются памяти на Linux?

Если это - Linux, это устанавливает ПРОГРАММУ UUDECODE на одну форму вызова команды uudecode, в противном случае другой. Это не стандартно, поэтому как звонить, это варьируется. Не очень умный, если Вы спрашиваете меня.

Запуск строки cat $0 делает реальную работу. $0 название рабочего процесса, т.е. текущего сценария. Снова, будет главным образом работать, но может дурачиться.

Содержание сценария передается по каналу к awk сценарий, который копирует весь текст после DATA BEGINS HERE к его выводу, который передается по каналу к uudecode (набор команд прежде). uudecode берет текст и делает двоичный файл из него (пара uuencode/uudecode где используется поставить двоичные файлы вокруг как текст, прежде чем HTTP и другие стали популярными), результат передается по каналу к команде в' ()', который сначала изменяется в /usr/local/bin и затем распаковывает вход с tar там. --unlink сначала удаляет любой существующий файл.

Куда это прибывает из?!

6
16.04.2014, 16:47
1 ответ

Когда серверный процесс запускается, он выполняет некоторые системные вызовы(socket()и listen()). Затем система открывает порт и создает дескриптор файла сокета, с которым взаимодействует процесс.Вы можете увидеть это с помощью:

Найдите идентификатор главного процесса Apache:

root@frisbee:~# ps -ef | grep apache | grep root
root     27440     1  0 16:06 ?        00:00:00 /usr/sbin/apache2 -k start

Перейдите к /proc/$pid/fdи просмотрите розетки:

root@frisbee:~# ls -l /proc/27440/fd | grep socket
lrwx------ 1 root root 64 apr 16 16:12 3 -> socket:[518486]
lrwx------ 1 root root 64 apr 16 16:12 4 -> socket:[518487]

Здесь вы можете видеть, что Apache открывает два сокета. Внутренний процесс Apache может использовать файловые дескрипторы 3 и 4 для чтения/записи данных через сетевое соединение.

Вы можете найти сопоставление между сокетами и прослушиваемыми портами с помощьюlsof:

root@frisbee:~# lsof | egrep 'IPv6.*(518486|518487)'
apache2   27440                  root    4u     IPv6             518487       0t0        TCP *:http (LISTEN)
apache2   27445              www-data    4u     IPv6             518487       0t0        TCP *:http (LISTEN)
apache2   27446              www-data    4u     IPv6             518487       0t0        TCP *:http (LISTEN)
apache2   27447              www-data    4u     IPv6             518487       0t0        TCP *:http (LISTEN)
apache2   27448              www-data    4u     IPv6             518487       0t0        TCP *:http (LISTEN)
apache2   27449              www-data    4u     IPv6             518487       0t0        TCP *:http (LISTEN)

Существует несколько процессов Apache, использующих один и тот же файловый дескриптор (, открытый процессом, работающим как root, поскольку это привилегированный порт ). Это рабочие Apache.

Более простой способ просмотреть связь между портом и процессом — использовать команду netstat:

mtak@frisbee:~$ sudo netstat -tulpn | grep apache
tcp6       0      0 :::80                   :::*                    LISTEN      4269/apache2   
5
27.01.2020, 20:29

Теги

Похожие вопросы