[gelöst] vdr in chroot (Debian Jessie) auf Synology

  • Moin zusammen,


    ich habe hier eine Synology (bromolow - x86_64) mit Debian Jessie im chroot laufen und ein seltsames Problem.
    Der vdr startet sauber mit allem was dazugehört, allerdings bekomme ich fast keine Meldungen von ihm im Log.


    Die einzige Meldung bzgl. vdr ist folgende:

    Code
    Apr 27 10:52:04 sundalon vdr: [13945] ERROR: no OSD provider available - using dummy OSD!


    Die Meldung ist ersteinmal zweitrangig, denn es ist noch kein einziges Plugin aktiv, aber warum bekomme ich
    sonst keine Ausgabe im Log? Ich nutze /etc/init.d/vdr und damit auch /etc/default/vdr, letztere Datei hat
    folgenden Inhalt.

    Code
    ENABLED=1
    VDR_LANG=de_DE.UTF8
    OPTIONS="-l 3"


    Auf Grund des chroot habe ich keinen syslog oder syslog-ng in dieser Umgebung aktiv. Alles logging sollte vom
    syslog der Synology in /var/log/messages aufgefangen werden (passiert ja auch teilweise). Oder habe ich da
    einen Denkfehler?


    Cheers,
    Ole

    Einmal editiert, zuletzt von OleS ()

  • Welche Version des vdr ist denn genau installiert?
    Nutzt Jessie noch /etc/default/vdr oder schon /etc/vdr/conf.d?
    Was sagt "ps aux | grep vdr", siehst du die Parameter?
    Falls keine da sind, siehst du sie denn mit "vdr --showargs"?
    Schau sonst mal in /etc/init.d/vdr rein, um zu sehen, wie die Parameter für den vdr zusammengebaut werden.


    Lars.

  • VDR ist aktuell aus dem eTobi-Repo.


    und verwendet allem Anschein nach conf.d.


    Starte ich den installierten rsyslog im chroot, bekomme ich dort alle Meldungen des vdr, allerdings landen dann auch alle Meldungen der Synology im Log der chroot.


    Cheers,
    Ole

    2 Mal editiert, zuletzt von OleS ()

  • Der vdr macht das:

    Code
    openlog("vdr", LOG_CONS, SysLogTarget);


    Dazu müsste man sich dann mal manpages lesen und herausfinden, wie es sich in einer chroot-Umgebung verhält bzw. wie man darauf Einfluss nehmen kann.


    Und es gibt natürlich noch eine erweiterte Einstellung für das syslog. Vielleicht hilft die ja.


    Lars.

  • Und der im chroot laufende epgd verwendet dies hier:

    Code
    lib/common.c:      openlog(cEpgConfig::logName, LOG_CONS, cEpgConfig::logFacility);


    also eigentlich identisch. Danke horchi!


    Was im chroot perfekt funktioniert - die Meldungen landen im syslog der Synology und ich brauche keinen syslog im chroot.
    Wenn ich deinen Link in's git richtig deute, dann schreibt der vdr nach LOG_USER, was der epgd lt. obiger Zeile auch macht...


    Die vdr-Option --log=3.n führt bei n=1-7 zu keinem positiven Ergebnis, dadurch wird statt der facility 2 (LOG_USER) die
    facility 16 - 23 verwendet (LOG_LOCAL0 - LOG_LOCAL7) - denke ich mal.


    Was mich aber vor allem wundert ist, warum die Error-Meldung vom vdr im Log der Synology ankommt...


    Cheers,
    Ole

    4 Mal editiert, zuletzt von OleS ()

  • man kann auch für den epgd per Argument den log-level und die Facility setzen:

    Code
    epgd -l 1.local2


    ggf. hilft es dir

  • Naja, der epgd verhält sich ja so, wie ich es erwarten würde. Was ich in Bezug auf syslog calls und chroot gefunden habe: klick mich

    Code
    A less-obvious issue with chroot() is if you call syslog(), as many daemons do;
    syslog() opens (depending on the system) either a UDP socket, a FIFO or a Unix-domain
    socket. So if you use it after a chroot() call, make sure that you call openlog()
    *before* the chroot.


    Nicht, dass es umsetzbar wäre, aber das würde doch auch den epgd betreffen, oder?
    /dev ist als mount bind im chroot komplett vorhanden und /dev/log ist vorhanden, daher doch eher nicht das Problem.


    Cheers,
    Ole

  • wenn es mit dem VDR funktioniert sollte es mit dem epgd und epghttpd genau so gehen, ich gehe mit dem syslog m.E. genau so um wie Lars es zum VDR oben recherchiert hat

    Code
    openlog(cEpgConfig::logName, LOG_CONS, cEpgConfig::logFacility);
  • Nein, mit dem vdr passt es leider nicht. Das Szenario ist syslog auf der Synology, epgd im chroot -> schreibt ins syslog der synology.
    vdr im chroot -> schreibt nur ein paar Meldungen (momentan genau eine) ins syslog der Synology, die restlichen Meldungen fehlen
    komplett.


    An den Benutzerrechten könnte es ja auch liegen... der epgd läuft als root, der vdr natürlich nicht.
    Aber selbst unprivilegierte Benutzer sollten doch nach /dev/log schreiben dürfen.

    Code
    srw-rw-rw- 1 root root 0 Apr 27 13:16 /dev/log


    und ein --user=root bringt auch nicht mehr Meldungen ins syslog.


    :§$%


    Cheers,
    Ole

  • Gibt es eine Möglichkeit, den vdr in eine eigene Datei loggen zu lassen? Also am syslog vorbei?


    Ich habe mir den Log Daemon der Synology mal näher angesehen, aber auch da komme ich nicht wirklich weiter.
    Das ist allem Anschein nach ein syslog-ng und die relevanten Einstellungen sind diese hier:



    Testweise habe ich den level schon auf (notice..emerg) gestellt - nix.



    Cheers,
    Ole

    Einmal editiert, zuletzt von OleS ()

  • Das Leben kann so einfach sein...

    Code
    level(debug..emerg)


    ...und schon landen auch die Meldungen des VDR im syslog der Synology.


    Cheers,
    Ole

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!