Я реализовал HTTP-сервер, используя Poco-библиотеки. В нем работает служба REST, и все работает отлично.Перезапустить HTTP-сервер Poco
HTTP-сервер работает как демон в системе Linux.
Теперь я хочу реализовать функциональность в службе REST, которая перезапускает сам демон HTTP-сервера.
Я использую команду popen
, чтобы вызвать команду оболочки для перезапуска демона. Демон перезапускается, и я вижу через netstat -plten
и ps -aux
, что сервер получает новый pid и прослушивает порт 80. Но он не обрабатывает входящие HTTP-запросы.
Если я ввожу команду оболочки непосредственно в терминал, демон перезапускается, получает новый pid и обрабатывает входящие HTTP-запросы.
Что может быть неправильным?
EDIT
Я также попытался вызвать команду оболочки с system(command);
и std::thread(std::system,command).detach();
, но результат тот же.
Тот же результат с портом выше 1024? – Marged
Вы проверяли системные журналы на все, что указывало бы на то, что процесс вызова popen запущен в проблему с разрешениями? – emsworth
@Marged То же самое происходит, если я переключаюсь на порт 8080. –