Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37752818
en ru br
Репозитории ALT

Группа :: Эмуляторы
Пакет: pve-qemu

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: 0034-PVE-redirect-stderr-to-journal-when-daemonized.patch
Скачать


From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Stefan Reiter <s.reiter@proxmox.com>
Date: Tue, 12 Jan 2021 14:12:20 +0100
Subject: [PATCH] PVE: redirect stderr to journal when daemonized
QEMU uses the logging for error messages usually, so LOG_ERR is most
fitting.
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
 meson.build | 2 ++
 os-posix.c  | 7 +++++--
 2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index 45c1f2de73..44071acbb7 100644
--- a/meson.build
+++ b/meson.build
@@ -1065,6 +1065,7 @@ keyutils = dependency('libkeyutils', required: false,
 has_gettid = cc.has_function('gettid')
 
 libuuid = cc.find_library('uuid', required: true)
+libsystemd = cc.find_library('systemd', required: true)
 libproxmox_backup_qemu = cc.find_library('proxmox_backup_qemu', required: true)
 
 # Malloc tests
@@ -2246,6 +2247,7 @@ if have_block
   # os-posix.c contains POSIX-specific functions used by qemu-storage-daemon,
   # os-win32.c does not
   blockdev_ss.add(when: 'CONFIG_POSIX', if_true: files('os-posix.c'))
+  blockdev_ss.add(when: 'CONFIG_POSIX', if_true: libsystemd)
   softmmu_ss.add(when: 'CONFIG_WIN32', if_true: [files('os-win32.c')])
 endif
 
diff --git a/os-posix.c b/os-posix.c
index ae6c9f2a5e..36807806bf 100644
--- a/os-posix.c
+++ b/os-posix.c
@@ -28,6 +28,8 @@
 #include <pwd.h>
 #include <grp.h>
 #include <libgen.h>
+#include <systemd/sd-journal.h>
+#include <syslog.h>
 
 #include "qemu-common.h"
 /* Needed early for CONFIG_BSD etc. */
@@ -291,9 +293,10 @@ void os_setup_post(void)
 
         dup2(fd, 0);
         dup2(fd, 1);
-        /* In case -D is given do not redirect stderr to /dev/null */
+        /* In case -D is given do not redirect stderr to journal */
         if (!qemu_logfile) {
-            dup2(fd, 2);
+            int journal_fd = sd_journal_stream_fd("QEMU", LOG_ERR, 0);
+            dup2(journal_fd, 2);
         }
 
         close(fd);
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin