Мало. Ибо не люблю гитхаб. Люблю архивы на prog.org.ru или иных ресурсах "в один клик".
Посмотрел ваш проект. Вас не смущает вот этот код?
QCoreApplication a(argc, argv);
ourtrackserv Service;
QTextStream in(stdin);
QTextStream out(stdout);
QString command = argv[1];
do
{
command = command.toUpper();
if (command == "START")
Service.on_starting();
else if (command == "STOP")
Service.on_stoping();
else if (command == "STATUS")
Service.on_status();
command = in.readLine();
}
while (!command.isNull());
return a.exec();
Не смущает, видимо.
Суть - асинхронные интерфейсы в Qt используют систему сигнал-слотов.
Краткий экскурс - сигнал слоты работают после a.exec().
Краткое подведение итогов - теперь вы знаете, что вам нужно вызывать exec для работы сигнал слотов.
Окончательное решение проблемы - поменять код ввода команд, задуматься над архитектурой.
PS Базис для раскопок я дал, даже много. Вот работающий сервер -
#include <QtCore/QCoreApplication>
#include "ourtrackserv.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
ourtrackserv Service;
Service.on_starting();
return a.exec();
}