powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
25 сообщений из 368, страница 7 из 15
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006105
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpКласс уже написан, и убирать цикл внутрь него нет необходимости. Он и в ГУИ прогах работает.

Значит в консольных - не сможет. Внезапно, да?..

PetroNotC Sharpwhile(1)+sleep(1) оптимально для данной задачи

Нет, это тупо до безобразия. sleep(infinite) сделает то же самое гораздо эффективнее. Но
см.выше.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006106
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, опять sleep()? Зачем sleep()?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
// это не метод класса, а обычная функция
void ListenMessages( void (*fptr)(int, struct msgbuf *, size_t, long, int) )
{
  for (;;)
  {
    ssize_t rcv_size = msgrcv(msqid, *msgp, msgsz, msgtyp, msgflg);
    ...
    // callback твоей функции
    fptr(msqid, *msgp, rcv_size, msgtyp, msgflg);
  }
}
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006107
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
Класс не мой. Уже тебе объяснял. Его править не рекомендуется.
Нужно ТЭО.
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006109
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,
ОК. Вариант номер 4)
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006112
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rdb_dev,
Вот цикл номер два)))))
Код: plaintext
1.
2.
3.
4.
5.
void main(int argc, char* argv[])
{
  ListenMessages(&my_callback_function);
  return 0;
}
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006113
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
>sleep(infinite)
Ну вот, я же не знал как усыпить поток правильно.
А ты молчишь.
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006115
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev
PetroNotC Sharp
rdb_dev,
Вот цикл номер два)))))
Код: plaintext
1.
2.
3.
4.
5.
void main(int argc, char* argv[])
{
  ListenMessages(&my_callback_function);
  return 0;
}

отлично!
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006116
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Dimitry Sibiryakov,
>sleep(infinite)
Ну вот, я же не знал как усыпить поток правильно.
А ты молчишь.
Кто будет опрашивать очередь сообщений?
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006117
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpКласс не мой. Уже тебе объяснял. Его править не рекомендуется.
Нужно ТЭО.

Ну так начни уже программировать. Забудь на время о демонах, напиши простую консольную
программу, которая работает с этим классом. Как я уже сказал, на этом этапе тебя может
ждать неприятный облом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006127
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev
PetroNotC Sharp
Dimitry Sibiryakov,
>sleep(infinite)
Ну вот, я же не знал как усыпить поток правильно.
А ты молчишь.
Кто будет опрашивать очередь сообщений?
ты системщик? Очередь операционки? Тогда сам и отвечай. А прикладника очередь порта в классе. Логично?
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006129
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
PetroNotC SharpКласс не мой. Уже тебе объяснял. Его править не рекомендуется.
Нужно ТЭО.

Ну так начни уже программировать. Забудь на время о демонах, напиши простую консольную
программу, которая работает с этим классом. Как я уже сказал, на этом этапе тебя может
ждать неприятный облом.намекни, где облом? Работает гуёвая из qt
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006130
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpЛогично?
Нет, просто тупо. В стиле дельфийских хомячков.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006133
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Тогда пропускай. Жуй попкорн.
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006135
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,
С другой стороны, сигналы ядра приходят вне всяких очередей.
Так что про необходимость выгребать из очереди надо подробнее)
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006136
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Логично?
Нет.
Какой метод класса заказчика крутит у себя внутри опрос очереди и на выходе предоставляет сообщение? Вот её вызов и крути в цикле!
А иначе со sleep() получаются насильственные действия сексуального характера в отношении представителей одного из родов водоплавающих птиц семейства утиных, отряда гусеобразных.
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006137
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rdb_dev,
С другой стороны, сигналы ядра приходят вне всяких очередей.
Так что про необходимость выгребать из очереди надо подробнее)
С сигналами работают другие функции. В основном потоке можно крутить обработку сигналов, в другом потоке - опрос очереди.
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006142
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev
PetroNotC Sharp
rdb_dev,
С другой стороны, сигналы ядра приходят вне всяких очередей.
Так что про необходимость выгребать из очереди надо подробнее)
С сигналами работают другие функции. В основном потоке можно крутить обработку сигналов, в другом потоке - опрос очереди.
да.
Может это Уже так сделано.
Их ИС
-----
СервисБ
КлассПодписчикБ

Наша ИС
ДемонА c КлассПодписчикБ

В их ИС их подписчик может сделать что угодно - породить процесс, слушать порт, сокет и микрофон.
В нашем коде пока других очередей и асинхронности нет.
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006149
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev
PetroNotC Sharp
Логично?
Нет.
Какой метод класса заказчика крутит у себя внутри опрос очереди и на выходе предоставляет сообщение? Вот её вызов и крути в цикле!
А иначе со sleep() получаются насильственные действия сексуального характера в отношении представителей одного из родов водоплавающих птиц семейства утиных, отряда гусеобразных.
хмм. Что делать если
А) презумция невиновности заказчика
Б) их модули без исходников и работают!
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006150
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,
Я вообще не понимаю, почему Сишникам надо обязательно до цикла добраться?
Каллбэк уже не торт?
))))
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006151
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, вероятно, внутри конструктора КлассПодписчикБ порождается другой поток, в котором и осуществляет опрос очереди. В этом случае тебе остаётся лишь написать обработку сигналов и при получении сигнала на завершение работы запустить деструктор экземпляра класса КлассПодписчикБ, чтобы тот правильно всё подчистил за собой и закрыл все дескрипторы, а не тупо отвалился так, что, к примеру, взаимодействующим с ним узлам придётся закрывать сокеты по таймауту, а на это время с их стороны будут блокированы конкурирующие потоки, потому что какая-то условная транзакция чего-либо не завершилась корректно. Так понятно?
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006152
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имхо тут прикладник сошелся с системщиком.
Я не лезу в чужой класс и он рабочий.
Нужно запустить его в фоне.
Системщик хочет все переписать вместе с классом.
Притремся)
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006154
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
rdb_dev,
Я вообще не понимаю, почему Сишникам надо обязательно до цикла добраться?
Каллбэк уже не торт?
))))
Потому что в известных мне современных ОС callback'и вне циклов встречаются только в драйверах, но никак не на прикладном уровне. Я пока ещё не встречал чисто событийных ОС и все, так или иначе, используют циклы либо в коде самого приложения, либо в "in-proccess серверах" - в динамически линкуемых библиотеках...
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006155
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev
PetroNotC Sharp, вероятно, внутри конструктора КлассПодписчикБ порождается другой поток, в котором и осуществляет опрос очереди. В этом случае тебе остаётся лишь написать обработку сигналов и при получении сигнала на завершение работы запустить деструктор экземпляра класса КлассПодписчикБ, чтобы тот правильно всё подчистил за собой и закрыл все дескрипторы, а не тупо отвалился так, что, к примеру, взаимодействующим с ним узлам придётся закрывать сокеты по таймауту, а на это время с их стороны будут блокированы конкурирующие потоки, потому что какая-то условная транзакция чего-либо не завершилась корректно. Так понятно?

Именно!
Вполне поток может быть или по юниксСовести даже процесс.
Про деструктор подожди.
Оффтоп. Потом проверим корректное завершение.
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006157
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev
PetroNotC Sharp
rdb_dev,
Я вообще не понимаю, почему Сишникам надо обязательно до цикла добраться?
Каллбэк уже не торт?
))))
Потому что в известных мне современных ОС callback'и вне циклов встречаются только в драйверах, но никак не на прикладном уровне. Я пока ещё не встречал чисто событийных ОС и все, так или иначе, используют циклы либо в коде самого приложения, либо в "in-proccess серверах" - в динамически линкуемых библиотеках...
-1
В java циклы вообще плохой тон.
...
Рейтинг: 0 / 0
Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
    #40006161
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, Код на Java несамостоятелен (ненативен), также, как и код на .NET или CSharp. В них циклы скрыты реализацией RTL.
...
Рейтинг: 0 / 0
25 сообщений из 368, страница 7 из 15
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как по новому пишется демон? systemd вместо init.d? fork() не нужен?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]