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