Такая ситуация: приложение использует старую библиотеку (только .so файлы), которые поправить нет возможности. При обычном запуске под рутом через терминал из любой директории или через менеджер файлов, программа запускается и работает нормально. Но стоит указать ее как демона где то в глубине этой библиотеки возникает ошибка:
terminate called after throwing an instance of ‘std::logic_error’ what(): basic_string::_S_construct null not valid
Очевидно что где то там внутри нее передается NULL как аргумент в string и который не NULL если запускается как обычное приложение. Не знаю что это за параметр, но по идее разницы же быть не должно запускается программа через systemd или менеджер файлов? Или все таки есть? Откуда она об этом может знать?