diff --git a/TODO.md b/TODO.md index 4640904..730db56 100644 --- a/TODO.md +++ b/TODO.md @@ -1 +1,6 @@ # TODO + +- Доработать получение TZ до старта демона, добавить необходимые пути в исключения. +- Проверить директорию как точку монтирования (потенциально) для отслеживания в fanotify как новый источник для FILESYSTEM. +- Необходим баннер с суммарной информацией по старту и прекращению работы демона с подробной информацией о работе. +- Вынести параметры CDC (`storage.setupCDC(2048, 8192, 65_536, 0x7FFF, 0x7FF)`) в отдельный блок. diff --git a/source/dwatch/daemon/core.d b/source/dwatch/daemon/core.d index ca27256..ce6b395 100644 --- a/source/dwatch/daemon/core.d +++ b/source/dwatch/daemon/core.d @@ -55,6 +55,7 @@ private { bool handled = receiveTimeout(200.msecs, (StopDaemon s) { send(mainTid, StoppedDaemon()); + warning("🚦 Остановка воркера"); }, (Session session) { trace("📩 Получен файл для создания снимка: ", session.filePathOpen); @@ -67,7 +68,7 @@ private { info("⚠️ Файл имеет актуальное состояние снимка: ", session.filePathOpen); } } catch (Exception e) { - writeln("❗️ ", e.msg); + errorf("❗️ %s: %s", e.msg, session.filePathOpen); } } ); @@ -183,22 +184,16 @@ public: signal(SIGINT, &handleSignal); signal(SIGTERM, &handleSignal); - writefln("ВНИМАНИЕ! Демон запущен в %s режиме!", _global ? "глобальном" : "обычном"); - writeln("⚙️ Текущий процесс: ", _pid); - writeln("🗄 База данных: ", _database); + infof("ВНИМАНИЕ! Демон запущен в %s режиме!", _global ? "глобальном" : "обычном"); + info("⚙️ Текущий процесс: ", _pid); + info("🗄 База данных: ", _database); _pds = [ pollfd(_fanFD, POLLIN, 0) ]; // Игнорирование файлов, к которым имеет доступ сам демон foreach (ignoreFile; ignoreFiles) { if (!ignoreFile.exists) continue; - int res = fanotify_mark( - _fanFD, - FAN_MARK_ADD | FAN_MARK_IGNORE_SURV, - _mask, - AT_FDCWD, - ignoreFile.toStringz() - ); + int res = fanotify_mark(_fanFD, FAN_MARK_ADD | FAN_MARK_IGNORE_SURV, _mask, AT_FDCWD, ignoreFile.toStringz()); if (auto e = collectException!ErrnoException( errnoEnforce(res == 0, "fanotify_mark failed:") )) { @@ -277,7 +272,7 @@ public: } } } else { - readlinkFdPath(metadata.fd).writeln; + warning("Обнаружен новый источник для добавления в исключения: ", readlinkFdPath(metadata.fd)); } // По умолчанию разрешить доступ всем событиям @@ -322,7 +317,6 @@ public: if (_fanFD >= 0) close(_fanFD); warning("🚦 Остановка демона по сигналу SIGINT/SIGTERM"); - // writeln("🚦 Остановка демона по сигналу SIGINT/SIGTERM"); // Отправка дочернему процессу сигнал об остановке send(_tid, StopDaemon()); @@ -330,8 +324,7 @@ public: bool stopped = false; receiveTimeout(10.seconds, (StoppedDaemon s) { stopped = true; }); - warning(stopped ? "✅ Воркер остановился" : "⏱️ Воркер не подтвердил остановку"); - // writeln(stopped ? "✅ Воркер остановился" : "⏱️ Воркер не подтвердил остановку"); + info(stopped ? "✅ Воркер остановился" : "⏱️ Воркер не подтвердил остановку"); // Завершение работы демона exit(EXIT_SUCCESS);