Запуск демона как обычного приложения (отладка в KDevelop)

Существуют инструменты, позволяющие запускать консольную команду или консольное приложение в качестве демона. Так сказать, "демонизировать".

Есть ли способ запустить демон как обычное консольное приложение?

Я кодирую в KDevelop и не вижу никаких вариантов отладки демона.

Спасибо !


person Alex Herrmann    schedule 23.05.2015    source источник


Ответы (1)


Достаточно нормально добавить специальный режим отладки для демонов, чтобы включить это. То есть добавьте параметр командной строки, чтобы отключить этап демонизации, запустив программу на переднем плане. Тогда просто запустить демон под gdb.

Я не знаю ни одного универсального способа сделать это. Может быть, это можно как-то сделать с перехватом LD_PRELOAD, что было бы круто, но проще просто изменить исходный код.

Для отладки работающего демона вы можете использовать команду gdb attach. Однако это не очень хорошо для отладки запуска демона, так как вам придется спешить, чтобы вовремя подключиться.

Ядро Linux не поддерживает какой-либо способ «предварительного подключения» к следующему экземпляру программы, но я написал хак для этого через SystemTap, который вы можете найти здесь.

person Tom Tromey    schedule 24.05.2015
comment
Спасибо за объяснение ! Ты отличный программист! Кстати, сейчас я пытаюсь создать серверное приложение REST API. Просто чтобы лучше познакомиться с C++. Мне также удалось отключить демонизацию, и теперь очень удобно отлаживать ее в KDevelop с помощью gdb. Только что прокомментировал следующую строку github.com/Begun/serverlib/blob /мастер/примеры/ - person Alex Herrmann; 24.05.2015