Демоны (способы взаимодействия)
Модератор: Модераторы разделов
-
alexis031182
- Сообщения: 180
- ОС: ALTLinux 4.0 Desktop
Демоны
Здравствуйте.
Задался целью разработать собственного демона для решения специфичной задачи. Почитал материалы на эту тему, но остался для меня неясным один вопрос. Существуют ли ещё какие-нибудь способы взаимодействия клиентского приложения с демоном, окромя как через сетевой порт. Задача заключается в обмене информацией внутри одного компьютера между процессами.
Спасибо.
Задался целью разработать собственного демона для решения специфичной задачи. Почитал материалы на эту тему, но остался для меня неясным один вопрос. Существуют ли ещё какие-нибудь способы взаимодействия клиентского приложения с демоном, окромя как через сетевой порт. Задача заключается в обмене информацией внутри одного компьютера между процессами.
Спасибо.
Да пребудут в целости хмуры и усталы
Делатели ценностей Профессионалы.
Делатели ценностей Профессионалы.
-
evgeny2k
- Сообщения: 26
- ОС: mandriva 2008 spring
Re: Демоны
Юзайте каналы.
Демон скриптовый или на чем посерьезнее писать будете?
А ваще вам нужно что-то типа popen()
Демон скриптовый или на чем посерьезнее писать будете?
А ваще вам нужно что-то типа popen()
-
ivze
- Сообщения: 39
- ОС: Ubuntu
Re: Демоны
Именованные каналлы. (pipefile)
Есть другие.
Сообщения(messages) (не сигналоы!).
Есть возможность устроить разделяемую память между процессами.
Есть другие.
Сообщения(messages) (не сигналоы!).
Есть возможность устроить разделяемую память между процессами.
-
alexis031182
- Сообщения: 180
- ОС: ALTLinux 4.0 Desktop
Re: Демоны
Имеется ввиду pipes?
Язык C/C++. Спасибо, поищу по этим ключевым словам информацию.
А это как?
Да пребудут в целости хмуры и усталы
Делатели ценностей Профессионалы.
Делатели ценностей Профессионалы.
-
evgeny2k
- Сообщения: 26
- ОС: mandriva 2008 spring
Re: Демоны
А можно более подробно, для чего демон?
Типа ТЗ напишите
Типа ТЗ напишите
-
alexis031182
- Сообщения: 180
- ОС: ALTLinux 4.0 Desktop
Re: Демоны
Собственно задача заключается в следующем:
- разработать два независимых друг от друга процесса (программы);
- первый осуществляет работу по сбору, накоплению и формированию некоей информационной структуры (здесь нужно подробно?) во всё время своего исполнения;
- второй процесс посылает запрос первому на возможность предоставления этой информации себе;
- первый процесс каким-то образом её и отсылает.
Да пребудут в целости хмуры и усталы
Делатели ценностей Профессионалы.
Делатели ценностей Профессионалы.
-
evgeny2k
- Сообщения: 26
- ОС: mandriva 2008 spring
Re: Демоны
Да, в вашем случае (если оба процесса живут на одном хосте) самым оптимальным будет использовать именованные каналы (пайпы). Один процесс открывает пайпу с правами на запись, а второй из нее только читает, и все довольны.
-
alexis031182
- Сообщения: 180
- ОС: ALTLinux 4.0 Desktop
Re: Демоны
Уточните, пожалуйста, данный метод является более эффективным, нежели использование способа обмена информации через сетевой порт? Или это просто как вариант?
Да пребудут в целости хмуры и усталы
Делатели ценностей Профессионалы.
Делатели ценностей Профессионалы.
-
/dev/random
- Администратор
- Сообщения: 5456
- ОС: Gentoo
Re: Демоны
Если демон запускается клиентом, то popen() - оптимальный вариант (нечего портам висеть). Если клиентов много на один демон - сеть. Разделяемая память - это зло, будет куча проблем с синхронизацией. Можно еще посмотреть в сторону man unix
ЗЫ именованные каналы ничем не лучше и не хуже unix-сокетов
ЗЗЫ если не считать того, что unix-сокеты дуплексные
ЗЫ именованные каналы ничем не лучше и не хуже unix-сокетов
ЗЗЫ если не считать того, что unix-сокеты дуплексные
-
evgeny2k
- Сообщения: 26
- ОС: mandriva 2008 spring
Re: Демоны
Уточните, пожалуйста, данный метод является более эффективным, нежели использование способа обмена информации через сетевой порт? Или это просто как вариант?
Я думаю, что в Вашем случае пайпа - это будет единственно правильный вариант, если конечно продуктом жизнедеятельности серверного процесса не станут гигабайты информации...
ЗЫ именованные каналы ничем не лучше и не хуже unix-сокетов
Согласен
ЗЗЫ если не считать того, что unix-сокеты дуплексные
Ну с пайпами работать в два направления - тоже не проблема
-
alexis031182
- Сообщения: 180
- ОС: ALTLinux 4.0 Desktop
Re: Демоны
Спасибо большое. Думаю нужно действительно попробовать именованные каналы использовать. Сокеты неудобны тем, что требуется сетевой порт, плюс мне и нужно лишь подключение исключительно одного клиента.
Да пребудут в целости хмуры и усталы
Делатели ценностей Профессионалы.
Делатели ценностей Профессионалы.
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Демоны
Есть смысл сделать обмен через файлы.
-
ssh
- Сообщения: 78
- ОС: Debian
Re: Демоны
/dev/random писал(а): ↑22.12.2007 21:36Разделяемая память - это зло, будет куча проблем с синхронизацией.
Разделяемая память плюс семафоры - никакого зла не будет. Если на один демон приходится много клиентов, то такое решение оптимально.
Кстати, если делать обмен через файлы (только зачем оно нужно?) без семафоров тоже не обойтись.
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Демоны
Да легко! Как я логи читаю? Всё дело в том, что
alexis031182, не написал, как именно будет происходить обмен: Если клиент ничего не хочет сообщить демону(как при чтении лог-файла) - никаких конфликтов не будет.
-
halturin
- Сообщения: 167
- ОС: Linux
Re: Демоны
Если я правильно понял, то человеку надо именно как-то отсемафорить "мол, эй, я тут насобирал для тебя, глянь плиз", и процесс идет смотреть. Так что я бы предложил использовать разделяемую память, а "семафорить" - либо как раз таки семафорами, либо сигналами, либо сообщениями... это уж к чему ближе душа лежит
ssh писал(а): ↑23.12.2007 11:15/dev/random писал(а): ↑22.12.2007 21:36Разделяемая память - это зло, будет куча проблем с синхронизацией.
Разделяемая память плюс семафоры - никакого зла не будет. Если на один демон приходится много клиентов, то такое решение оптимально.
Кстати, если делать обмен через файлы (только зачем оно нужно?) без семафоров тоже не обойтись.
твое сообщение прочитал после того как свое запостил
-
LMZ
- Сообщения: 25
- ОС: debian etch
Re: Демоны
небольшой оффтоп:
может использовать базу данных?!
может использовать базу данных?!
-
malex
- Сообщения: 374
- ОС: debian
Re: Демоны
может использовать базу данных?!
имхо, я тоже так бы сделал (использовал бы что то типа SQLite)
Ну вот, еще один день прошел, а мы все еще живы. И может быть стали умнее.