Каков наилучший метод IPC, чтобы первый процесс оставался запущенным, в то время как последующие процессы передают только параметры? - PullRequest
0 голосов
/ 01 апреля 2019

Мне нужно разработать процесс, который запускается и продолжает работать, когда на локальном хосте не запущен другой такой процесс. Последующие локальные экземпляры этого процесса (порожденные другими процессами, т. Е. Не разветвленными дочерними / родительскими) затем должны выполняться только для того, чтобы каким-либо образом передать свои параметры командной строки исходному процессу для обработки, а затем завершить работу как можно скорее.

Я знаю, что мне нужен IPC для достижения этой цели, в то время как мне нужно свести к минимуму издержки, связанные с занимаемой площадью и скоростью выполнения, так что это исключает использование сокетов и других сетевых IPC, таких как очереди сообщений. Порожденные процессы должны как-то быть осведомлены о главном процессе. Для хостов не требуется IPC.

Я думаю об использовании именованного канала, но хочу знать альтернативы. Например, будет ли более эффективен анонимный канал через общий дескриптор, записанный в файл?

В этом случае механизм важен; не язык и среда, содержащиеся в примерах. Я буду реализовывать механизм на C или C ++.

1 Ответ

0 голосов
/ 01 апреля 2019

Страница MAN для msgrcv() и msgsnd() дает все, что вам нужно знать для выполнения требуемых операций.

Предложите чтение: как использовать msgrcv для примера того, какиспользовать эти функции.

...