мета-данные страницы
  •  

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
glossary:prog:interprocessing_interaction [2025/10/08 14:48] – удалено - внешнее изменение (Дата неизвестна) A User Not Logged inglossary:prog:interprocessing_interaction [2025/11/09 12:07] (текущий) – внешнее изменение A User Not Logged in
Строка 1: Строка 1:
 +====== IPC ======
  
 +IPC - **i**nter-**p**rocess **c**ommunications  - межпроцессное взаимодействие
 +
 +===== signals =====
 +
 +Сигналы - часть [[playground:glossary:posix|стандарта POSIX]], удобны для межпроцессного взаимодействия в unix-like системах.
 +
 +Их может посылать как пользователь программе напрямую((вернее ручками, тк дефакто, посылает их ''kill'', тоже прграмма)), так и //master// процесс: когда основная программа - демон, называемый //worker//, а сигналы ему шлет //master//, как, например, у ''ntpd'' и ''ntpdc''.
 +
 +Мастер должен найти процесс-воркер, что бы слать ему сигналы.
 +
 +==== pid ====
 +
 +PID (**p**rocess **id**entifier) - уникальный числовой идентификатор процесса. Чтобы master'у получить PID worker'а:
 +- Использовать команды, такие как ''ps'' или ''pgrep''. Например, команда ''ps aux'' выводит список всех процессов с их PID, что позволяет мастеру определить, какой процесс-воркер необходимо адресовать. Но для этого надо взаимодействовать с shell'ом. Надежднее, но заморочнее.
 +- Прочитать его из файла((традиционно, такиее файлы имеют суффикс ''.pid'')) в условленном месте, куда worker при старте записывает свой PID. Если файла в условленном месте нет - master считает, что worker не запущен.
 +
 +{{fixme}} примеры
 +
 +==== socket ====
 +
 +Сокеты - еще один способ межпроцессного взаимодействия. Сокеты могут быть как "локальными", использующими файловую систему, так и "сетевыми", использующими сетевые протоколы. Сокеты могут использовать различные протоколы((те же TCP / UDP)).
 +
 +{{fixme}} примеры
 +
 +===== named pipe =====
 +
 +{{fixme}}