|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.02.2024, 10:30 | #1 |
Новичок
Джуниор
Регистрация: 14.02.2024
Сообщений: 1
|
Почему Apache2 сервер в Linux ждёт завершения дочернего отсоединённого потока, когда родительский процесс уже завершён?
В Windows нормально работает. В старых версиях Debian Linux тоже нормально работает, но установил Debian 12 и не работает.
Код:
c++ test.cpp -std=c++20 -o test.exe Получаем рядом с test.cpp запускаемый test.exe. Настраиваем cgi в apache2 и открываем в браузере test.exe. Должен сразу отобразиться результат {"test": 1234}, но результат в Debian 12 отображается после выполнения sleep 5, c задержкой в 5 секунд, хотя этому процессу сделали detach. В Windows и старых версиях Debian отображается сразу. Когда запускаю из консоли ./test.exe результат в консоль выводится сразу и сразу даёт печатать следующую команду. С чем это может быть связано? Как сделать так, чтобы apache2 не ждал завершения отсоединённых потоков? Если StartCommandDetach("sleep 5"); заменить на StartCommandDetach("sleep 5 > /tmp/sleep.txt"); и закомментировать std::this_thread::sleep_for(std::ch rono::milliseconds(1)); то главная программа настолько быстро завершается, что не срабатывает запуск дочернего потока, файлик /tmp/sleep.txt не появляется. С раскомментированной паузой 1 мс файлик /tmp/sleep.txt появляется. Хотя, по логике, если прописан запуск дочернего потока, то, в любом случае, он должен сначала запуститься, а затем возможен выход из родительской программы. Похоже, это баг std-библиотеки. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Процесс-клиент отправляет построчно файл серверу. Сервер выводит полученные датаграммы на экран / С под Linux | Nickolay0512 | C/C++ Сетевое программирование | 0 | 29.03.2014 06:08 |
как заставить родительский div растягиваться по высоте дочернего | Arassir | HTML и CSS | 9 | 16.10.2013 15:20 |
Передача значения из дочернего процесса в родительский | MrGukk | Общие вопросы C/C++ | 0 | 03.09.2012 20:03 |
Родительский процесс | Den7656 | Win Api | 2 | 09.09.2011 17:11 |
Программа не ждёт завершения ввода | ProgDel | Общие вопросы C/C++ | 4 | 30.10.2010 16:05 |