Russian Qt Forum
Ноябрь 22, 2024, 01:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Ликвидировать демона  (Прочитано 14567 раз)
Inhibitor
Гость
« : Март 31, 2020, 21:27 »

Товарищи профессионалы, нужен совет.

Есть исходный код написанный под Linux, в котором задействован демон. Qt не используется. Задача стоит переписать данный код средствами Qt, дабы помимо пользователей Linux были так же осчастливлены многочисленные пользователи Венды. Подскажите, пожалуйста, в каком направлении копать?

Спасибо!
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #1 : Март 31, 2020, 22:38 »

сути проблемы не уловил и что значит "задействован демон" ?
Записан
Inhibitor
Гость
« Ответ #2 : Март 31, 2020, 22:55 »

сути проблемы не уловил и что значит "задействован демон" ?

В main.cpp первым делом создается демон через стандартную процедуру: fork(), umask(), setsid() и так далее...
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #3 : Апрель 01, 2020, 08:32 »

Посмотрите в сторону QtService.
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
ssoft
Программист
*****
Offline Offline

Сообщений: 584


Просмотр профиля
« Ответ #4 : Апрель 01, 2020, 08:34 »

Посмотрите в сторону Qt Service
Записан
ssoft
Программист
*****
Offline Offline

Сообщений: 584


Просмотр профиля
« Ответ #5 : Апрель 01, 2020, 08:35 »

Посмотрите в сторону QtService.
Как синхронно получилось))
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #6 : Апрель 01, 2020, 10:06 »

штампы, что поделаешь))
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #7 : Апрель 01, 2020, 18:28 »

В main.cpp первым делом создается демон через стандартную процедуру: fork(), umask(), setsid() и так далее...

так убрать их не  ?
Записан
DarkHobbit
Самовар
**
Offline Offline

Сообщений: 197


Просмотр профиля
« Ответ #8 : Апрель 02, 2020, 12:15 »

Посмотрите в сторону QtService.
Интересная вещь, спасибо.
А он вообще поддерживаемый? Я смотрю, последний коммит был 4 года назад. Да и статус всего проекта qt-solutions вызывает интерес. Я так понял, это набор библиотек от разработчиков Qt, но при этом в саму Qt не входящих?..
Записан

Мои проекты на Qt: DoubleContact, LInvert
DarkHobbit
Самовар
**
Offline Offline

Сообщений: 197


Просмотр профиля
« Ответ #9 : Апрель 02, 2020, 12:30 »

Есть исходный код написанный под Linux, в котором задействован демон. Qt не используется. Задача стоит переписать данный код средствами Qt, дабы помимо пользователей Linux были так же осчастливлены многочисленные пользователи Венды.

Я бы, кстати, задался вопросом: а нужна ли в таком серверном проекте вообще Qt, и не решаема ли задача средствами "чистого" современного C++ (возможно, с привлечением Boost, в частности, Boost.Asio, но и STL сейчас очень сильно подрос)?

Если что, я не настаиваю, что этот вопрос имеет однозначное решение. У QtCore до сих пор есть сильные "плюшки", например, ЧЕЛОВЕЧЕСКАЯ поддержка строк с юникодом и вообще перекодировками. А вот QtNetwork vs Boost и вообще зрелость сетевого стека в Qt --- тема очень-очень отдельного флейма (вот, например, страшная история с другого форума).

Решать Вам, конечно. Мне, кстати, интересно, что же Вы в итоге решите.
« Последнее редактирование: Апрель 02, 2020, 13:10 от DarkHobbit » Записан

Мои проекты на Qt: DoubleContact, LInvert
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #10 : Апрель 02, 2020, 13:46 »

QtNetwork оно об удобстве а не о производительности. Там внутре вообще select() испльзуется => проблему 10к на кутешных сокетах не решить.
АСИО я не трогал лет 6 но и тогда оно тоже недалеко ушло от кутешных сокетов - там внутри все было "поперчено" мьютексами которые безбожно тормозили.
Возможно за 6 лет что-то и поменялось в лучшую сторону но я бы смотрел на голый epoll или тонкие обертки над ним и аналогами
Записан
Inhibitor
Гость
« Ответ #11 : Апрель 02, 2020, 17:16 »

так убрать их не  ?

Ну как бэ да  Строит глазки Точнее не убрать, а написать в Qt реализацию годную для обоих платформ.

Посмотрите в сторону QtService.

Посмотрел. Товарищ DarkHobbit озвучил мои опасения. Это про коммит четырехлетней давности. Так что пока в раздумиях...

Я бы, кстати, задался вопросом: а нужна ли в таком серверном проекте вообще Qt, и не решаема ли задача средствами "чистого" современного C++ (возможно, с привлечением Boost, в частности, Boost.Asio, но и STL сейчас очень сильно подрос)?

Увы, это не чисто серверное приложение, GUI там присутствует в достаточном количестве. А ваять вменяемый GUI без Qt мы уже не умеем Смеющийся (Давеча листал код с MFC  Шокированный   God bless the Qt!  Веселый)
« Последнее редактирование: Апрель 04, 2020, 13:22 от Inhibitor » Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #12 : Апрель 02, 2020, 18:01 »

А вот QtNetwork vs Boost и вообще зрелость сетевого стека в Qt --- тема очень-очень отдельного флейма (вот, например, страшная история с другого форума).

а можно ли подробнее про недостатки QtNetwork vs Boost  ?

на том форуме нет кода, хз что там ТС еще делал, и версия qt старая
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #13 : Апрель 02, 2020, 18:03 »

Там внутре вообще select() испльзуется => проблему 10к на кутешных сокетах не решить.

была проблема 1024 сокетов, ее решили после 5.6
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #14 : Апрель 02, 2020, 18:08 »

Точнее не убрать, а написать в Qt реализацию годную для обоих платформ.

если для linux это systemd или иное, то уже не две реализации  )
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.179 секунд. Запросов: 22.