Russian Qt Forum
Ноябрь 22, 2024, 07:12
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Компиляторы и платформы
>
Linux
>
Ликвидировать демона
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Ликвидировать демона (Прочитано 14612 раз)
Inhibitor
Гость
Ликвидировать демона
«
:
Март 31, 2020, 21:27 »
Товарищи профессионалы, нужен совет.
Есть исходный код написанный под Linux, в котором задействован демон. Qt не используется. Задача стоит переписать данный код средствами Qt, дабы помимо пользователей Linux были так же осчастливлены многочисленные пользователи Венды. Подскажите, пожалуйста, в каком направлении копать?
Спасибо!
Записан
qate
Супер
Offline
Сообщений: 1177
Re: Ликвидировать демона
«
Ответ #1 :
Март 31, 2020, 22:38 »
сути проблемы не уловил и что значит "задействован демон" ?
Записан
Inhibitor
Гость
Re: Ликвидировать демона
«
Ответ #2 :
Март 31, 2020, 22:55 »
Цитата: qate от Март 31, 2020, 22:38
сути проблемы не уловил и что значит "задействован демон" ?
В main.cpp первым делом создается демон через стандартную процедуру: fork(), umask(), setsid() и так далее...
Записан
sergek
Гипер активный житель
Offline
Сообщений: 872
Мы должны приносить пользу людям.
Re: Ликвидировать демона
«
Ответ #3 :
Апрель 01, 2020, 08:32 »
Посмотрите в сторону QtService.
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
ssoft
Программист
Offline
Сообщений: 584
Re: Ликвидировать демона
«
Ответ #4 :
Апрель 01, 2020, 08:34 »
Посмотрите в сторону
Qt Service
Записан
ssoft
Программист
Offline
Сообщений: 584
Re: Ликвидировать демона
«
Ответ #5 :
Апрель 01, 2020, 08:35 »
Цитата: sergek от Апрель 01, 2020, 08:32
Посмотрите в сторону QtService.
Как синхронно получилось))
Записан
sergek
Гипер активный житель
Offline
Сообщений: 872
Мы должны приносить пользу людям.
Re: Ликвидировать демона
«
Ответ #6 :
Апрель 01, 2020, 10:06 »
штампы, что поделаешь))
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
qate
Супер
Offline
Сообщений: 1177
Re: Ликвидировать демона
«
Ответ #7 :
Апрель 01, 2020, 18:28 »
Цитата: Inhibitor от Март 31, 2020, 22:55
В main.cpp первым делом создается демон через стандартную процедуру: fork(), umask(), setsid() и так далее...
так убрать их не ?
Записан
DarkHobbit
Самовар
Offline
Сообщений: 197
Re: Ликвидировать демона
«
Ответ #8 :
Апрель 02, 2020, 12:15 »
Цитата: sergek от Апрель 01, 2020, 08:32
Посмотрите в сторону QtService.
Интересная вещь, спасибо.
А он вообще поддерживаемый? Я смотрю, последний коммит был 4 года назад. Да и статус всего проекта qt-solutions вызывает интерес. Я так понял, это набор библиотек от разработчиков Qt, но при этом в саму Qt не входящих?..
Записан
Мои проекты на Qt:
DoubleContact
,
LInvert
DarkHobbit
Самовар
Offline
Сообщений: 197
По теме автора
«
Ответ #9 :
Апрель 02, 2020, 12:30 »
Цитата: Inhibitor от Март 31, 2020, 21:27
Есть исходный код написанный под Linux, в котором задействован демон. Qt не используется. Задача стоит переписать данный код средствами Qt, дабы помимо пользователей Linux были так же осчастливлены многочисленные пользователи Венды.
Я бы, кстати, задался вопросом: а нужна ли в таком серверном проекте вообще Qt, и не решаема ли задача средствами "чистого" современного C++ (возможно, с привлечением Boost, в частности, Boost.Asio, но и STL сейчас очень сильно подрос)?
Если что, я не настаиваю, что этот вопрос имеет однозначное решение. У QtCore до сих пор есть сильные "плюшки", например, ЧЕЛОВЕЧЕСКАЯ поддержка строк с юникодом и вообще перекодировками. А вот QtNetwork vs Boost и вообще зрелость сетевого стека в Qt --- тема очень-очень отдельного флейма (вот, например,
страшная история с другого форума
).
Решать Вам, конечно. Мне, кстати, интересно, что же Вы в итоге решите.
«
Последнее редактирование: Апрель 02, 2020, 13:10 от DarkHobbit
»
Записан
Мои проекты на Qt:
DoubleContact
,
LInvert
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Ликвидировать демона
«
Ответ #10 :
Апрель 02, 2020, 13:46 »
QtNetwork оно об удобстве а не о производительности. Там внутре вообще select() испльзуется => проблему 10к на кутешных сокетах не решить.
АСИО я не трогал лет 6 но и тогда оно тоже недалеко ушло от кутешных сокетов - там внутри все было "поперчено" мьютексами которые безбожно тормозили.
Возможно за 6 лет что-то и поменялось в лучшую сторону но я бы смотрел на голый epoll или тонкие обертки над ним и аналогами
Записан
Inhibitor
Гость
Re: Ликвидировать демона
«
Ответ #11 :
Апрель 02, 2020, 17:16 »
Цитата: qate от Апрель 01, 2020, 18:28
так убрать их не ?
Ну как бэ да
Точнее не убрать, а написать в Qt реализацию годную для обоих платформ.
Цитата: sergek от Апрель 01, 2020, 08:32
Посмотрите в сторону QtService.
Посмотрел. Товарищ DarkHobbit озвучил мои опасения. Это про коммит четырехлетней давности. Так что пока в раздумиях...
Цитата: DarkHobbit от Апрель 02, 2020, 12:30
Я бы, кстати, задался вопросом: а нужна ли в таком серверном проекте вообще Qt, и не решаема ли задача средствами "чистого" современного C++ (возможно, с привлечением Boost, в частности, Boost.Asio, но и STL сейчас очень сильно подрос)?
Увы, это не чисто серверное приложение, GUI там присутствует в достаточном количестве. А ваять вменяемый GUI без Qt мы уже не умеем
(Давеча листал код с MFC
God bless the Qt!
)
«
Последнее редактирование: Апрель 04, 2020, 13:22 от Inhibitor
»
Записан
qate
Супер
Offline
Сообщений: 1177
Re: По теме автора
«
Ответ #12 :
Апрель 02, 2020, 18:01 »
Цитата: DarkHobbit от Апрель 02, 2020, 12:30
А вот QtNetwork vs Boost и вообще зрелость сетевого стека в Qt --- тема очень-очень отдельного флейма (вот, например,
страшная история с другого форума
).
а можно ли подробнее про недостатки QtNetwork vs Boost ?
на том форуме нет кода, хз что там ТС еще делал, и версия qt старая
Записан
qate
Супер
Offline
Сообщений: 1177
Re: Ликвидировать демона
«
Ответ #13 :
Апрель 02, 2020, 18:03 »
Цитата: Авварон от Апрель 02, 2020, 13:46
Там внутре вообще select() испльзуется => проблему 10к на кутешных сокетах не решить.
была проблема 1024 сокетов, ее решили после 5.6
Записан
qate
Супер
Offline
Сообщений: 1177
Re: Ликвидировать демона
«
Ответ #14 :
Апрель 02, 2020, 18:08 »
Цитата: Inhibitor от Апрель 02, 2020, 17:16
Точнее не убрать, а написать в Qt реализацию годную для обоих платформ.
если для linux это systemd или иное, то уже не две реализации )
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...