Чтобы добавлять сообщения и комментарии, .

@fillest:
fillest

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

@fillest:
fillest

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

@qnikst:
qnikst

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

@segfault:
segfault

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

@Equidamoid:
Equidamoid

Есть сишная прога, которая кладёт структуру в shared memory. Как бы попроще прочитать её из питоньего скрипта?

@qnikst:
qnikst

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

@Elemir:
Elemir

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

@lexszero:
lexszero

youtube.com

@pc:
pc

enable IPC$, ADMIN$ share on windows fierewall

netsh firewall set service RemoteAdmin enable

@rion:
rion

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