Удаленное управление процессом в Linux - PullRequest
0 голосов
/ 02 декабря 2010

В настоящее время я работаю над проектом, требующим ряда процессов, работающих под управлением «основного» процесса, который получает удаленные команды через TCP и сообщает дочерним процессам, что делать (например: с какими файлами они должны работать,какие операции обработки они должны выполнять).

Я предложил следующие идеи для передачи команд / конфигурации дочерним процессам:

  • Сигналы (недостаточно мощные)
  • Двоичный протокол через сокеты или каналы, соединяющие каждый процесс с мастером (заново изобретать колесо).
  • RPC (возможно, перебор)
  • CORBA (возможно перебор)
  • DDS (полностью перебор)

Есть идеи / предложения?

Ответы [ 5 ]

1 голос
/ 02 декабря 2010
0 голосов
/ 10 февраля 2012

Может пригодиться supervisord .Это система клиент / сервер, которая позволяет пользователям отслеживать и контролировать ряд процессов в UNIX-подобных операционных системах.

0 голосов
/ 03 декабря 2010

Легкая очередь сообщений, такая как beanstalkd или resque, кажется правильным уровнем сложности. Файлы с inotify также могут работать; inotify разработан как очередь событий. Вы можете попробовать его с помощью incrontab перед запеканием. {Xml, json} -rpc (немного) более сложный, но и более стандартный, так как использует http. Однако метафора очереди сообщений является более подходящей, чем rpc, для неблокирующих взаимодействий.

0 голосов
/ 03 декабря 2010

Вы также можете использовать очереди сообщений или общую память с семафорами.

Вы также можете взглянуть на проект Apache под названием ActiveMQ, который позволяет отправлять сообщения в очереди подписки и т. Д. Он очень мощный и гибкий, и в нем есть C-интерфейсы. Идеально, если у вас много машин / сетей, на которые вам нужно отправлять сообщения.

http://activemq.apache.org/

0 голосов
/ 03 декабря 2010

Как насчет текстового протокола по каналам?

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

...