to post messages and comments.

Дано: процесс S; множество инстансов процесса W, выполняющих множество рахных тасков; sqlite-база для некоторого специфичного общения между S и W. Любой из W может грязно крашнуться в любой момент (и у S могут быть произвольные даунтаймы). W пишет некоторые данные в бд, S каждые n времени читает из бд.
Нужно: каждый процесс W должен уникально идентифицировать себя таким образом, чтобы S мог определить, не крашнулся ли конкретный W. При этом W не должны зависить от S.
Текущая идея: W создаёт файл с уникальным именем, flock'ает его (такой лок автоматически освобождается ведром при гибели процесса), пишет в бд имя файла, при нормальном завершении освобождает и удаляет файл. S во время очередной итерации при подозрении на краш W пробует flock'нуть тот же файл и таким образом развеивает/подтвержает своё подозрение.
Это будет работать, но кажется немного оверкиллом, может есть попроще способ? Что-нибудь вроде возможности записать строчку куда-нибудь в proc чтобы не создавать ничего руками?

Задаченька на прыще-ipc. Есть множество процессов-воркеров на одном хосте. Периодически в случайно выбранном из них запускается кот. Кот может работать дольше интервала запуска следующего кота (как cron), соотв. нужно предотвратить запуск следующего кота. Процесс с котом может быть жёстко ассасинирован в любой момент, например, oom-killer'ом. Соотв., нужно нечто, чистящееся ведром автоматически при таком раскладе.
Открывать на слушанье сокет это совсем быдло-вей. open("/tmp/lockfile", ... | O_EXLOCK)? Подводные камни (кроме вероятности удаления этого файла извне — её можно проигнорить)? Что-нибудь ещё?
На картинке кот по запросу "acne cat".

Чисто из интресу, а какие есть IPC, поддерживающие zero-copy, и при этом разграничение прав. Можно unicast, можно однонаправленные
Варианты, выделить анонимную страницу и передать handle а дальше рушами, или сделать clone тоже рассматриваются, но с меньшим интересом :)

Нужно из питона отправить структурированное сообщение сишке, так чтобы в сишке было легко разобрать, а в пудоне легко сгенерировать. Желательно без зависимости от внешних библиотек, генераторы кода можно.
Предложения ?

подскажите пожалуйста по системам IPC в linux, можно обзорную статью или просто годную. Что хочется от системы:
0). будет реализовываться клиент — сервер
1). протокол сообщений будет текстовый
2). на стороне сервера нужно асинхронное прослушивание событий
3). очень желательно знать PID отправляющего или каким другим образом однозначно его идектифицировать

Читатель, наверняка ты знаешь много IPC для UNIX. Все, что знаю я, используют для индификации разные методы, но все они pid-независимые. Для моей задачи серверу требуется наверняка узнать pid клиента, или хотя бы установить является ли один клиент прямым наследником другого. Есть ли какие-нибудь способы разрешения этой проблемы?

ipc

погуглил тут на тему кроссплатформенного ipc. похоже лучше tcp ещё ничего не придумали. можно ещё поюзать пайпы, но то, что оно работает с фс, создает дополнительный гемор.