softhddevice mit systemd starten als normaler Nutzer

  • Danke für den --chartab=ISO-8859-9 Tip.


    Die Sprache wird bei openSuse in /etc/sysconfig/language eingestellt, aber da mein VDR als root läuft und ich die Fehlermeldungen auf Englisch bekommen möchte, nützt das nichts.
    So bleibe ich wohl bei Environment=LANG=de_DE.UTF-8 LC_ALL=de_DE.UTF-8 .


    ExecStart=/usr/bin/X :0 vt7 funktioniert bei mir bestens, allerdings starte ich im Xserver nichts außer xine oder manchmal softhddevice.
    Was soll denn daran nicht zuverlässig funktionieren?

  • SoFi ist vorbei,


    also wieder den wichtigen Dingen widmen.
    (vdr user ist client!!!)
    Ich hab jetzt folgendes gemacht:
    vdr.service


    xlogin über yast installiert und meine xlogin@client.service:


    dann xlogin über sytemd noch enabled
    und getty@tty7.service disabled, weil es ja im Konfikt steht.
    ich hab dann noch von /etc/X11/xinit/xinitrc ins home verzeichnis als ./.xinitrc kopiert


    ABER:

    Code
    linux-016v:~ # systemctl status xlogin@client
    xlogin@client.service - Direct X login for user client
       Loaded: loaded (/etc/systemd/system/xlogin@client.service; enabled)
       Active: failed (Result: exit-code) since Fr 2015-03-20 11:04:41 CET; 1min 18s ago
      Process: 1042 ExecStart=/usr/bin/bash -l -c cd; source .xinitrc (code=exited, status=203/EXEC)
     Main PID: 1042 (code=exited, status=203/EXEC)


    was mach ich falsch?

    Server:
    1x TBS 6984 Quad DVB-S2
    1x TBS 6985 Quad DVB-S2
    VDR 2.0.6
    remotetimers,streamdev
    Client:
    VDR 2.1.6
    softhddevice,remotetimers,epgsync,svdrpsend,streamdev

  • Hallo Copperhead,


    was meinst du genau mit aktiv bleiben? Ich habe jetzt noch den fehlenden x@vt7.service hinzugefügt und bekomme

    Server:
    1x TBS 6984 Quad DVB-S2
    1x TBS 6985 Quad DVB-S2
    VDR 2.0.6
    remotetimers,streamdev
    Client:
    VDR 2.1.6
    softhddevice,remotetimers,epgsync,svdrpsend,streamdev

  • Hallo Copperhead,


    vielen dank erstmals für deine bisherige Hilfe.


    also meine ./.xinitrc enhält jetzt folgendes:


    Ich hatte auch schon kurz Bild und ton, aber nach einem reboot war es wieder weg ;(
    Ich hab jetzt auch versucht vt1 zu verwenden, ohne Erfolg.


    Hier der Aktuelle Status:


    vdr.service:


    xlogin@client.service


    x@vt7.service

    Code
    Unit]
    Description=X on vt7
    Wants=mulit-user.target
    Before=mulit-user.target
    StopWhenUnneeded=true
    
    
    [Service]
    Type=forking
    ExecStart=/usr/bin/x-daemon  -nolisten tcp -noreset vt7


    /usr/bin/x-daemon.sh

    Code
    #! /usr/bin/bash
    trap "exit 0" USR1
    (
    trap "" USR1
    exec /usr/bin/X "$@"
    ) &
    wait
    exit 1


    Wieso will X nicht starten?? ;(

    Server:
    1x TBS 6984 Quad DVB-S2
    1x TBS 6985 Quad DVB-S2
    VDR 2.0.6
    remotetimers,streamdev
    Client:
    VDR 2.1.6
    softhddevice,remotetimers,epgsync,svdrpsend,streamdev

  • Du hast x@.service ersetzt durch x@vt7.service.
    Ohne lange drüber nach zu denken, das kommt mir komisch vor.


    Übrigens, hier und da hat der Autor vom xlogin was über xlogin geschrieben.
    Leider nicht sehr erhellend für mich.


    Edit: Das ist auch interessant.

  • Mein System startet jetzt und rent super,


    Der fehler war in der x-daemon Datei
    Bei opensuse ist bash nämlich unter /bin/bash und nicht unter /usr/bin/bash. :P



    ABER ich kann es jetzt nicht mehr runterfahren. :mua
    da mein vdr nicht mehr unter root läuft ist es nix mehr mit /sbin/shutdown :D


    Ich hab mir jetzt schon auf VDR4arch das shutdownscript angesehen. Ganz verstehe ich es aber nicht.
    in 00-vdr.conf wird der wrapper aufgerufen, was aber eine .c Datei ist.
    Wie funktioniert das? oder soll die .c mit dem vdr mit kompiliert werden?


    lg Painkilla

    Server:
    1x TBS 6984 Quad DVB-S2
    1x TBS 6985 Quad DVB-S2
    VDR 2.0.6
    remotetimers,streamdev
    Client:
    VDR 2.1.6
    softhddevice,remotetimers,epgsync,svdrpsend,streamdev

  • Danke, Danke,


    funktioniert perfekt!
    Die Pfade musste ich nur ein bissl an meine Installation anpassen. War aber kein Problem.


    Ich hab nur noch einen kleinen Schönheitsfehler.
    wenn mein X Server gestartet wird, wird mein Boot-Screen total verpixelt und ich muss in der x@.service
    den Parameter
    StopWhenUnneeded=true


    auf false ändern, weil der X-Server sonst sofort wieder weg ist.


    woran könnte das liegen?


    Painkilla

    Server:
    1x TBS 6984 Quad DVB-S2
    1x TBS 6985 Quad DVB-S2
    VDR 2.0.6
    remotetimers,streamdev
    Client:
    VDR 2.1.6
    softhddevice,remotetimers,epgsync,svdrpsend,streamdev

  • Das bedeutet, dass kein Service mehr x@.service benötigt. Und das bedeutet, dass sich xlogin@.service beendet hat und das bedeutet, dass sich deine .xinitrc beendet hat.
    Eine .xinitrc muss aber stehen bleiben. Daher ja diese Zeile: https://github.com/VDR4Arch/vd…aster/vdr/vdr.install#L23


    Ich weiß, dass dieser kill -stop ein Hack ist, mir ist aber nach langem Überlegen nichts besseres eingefallen.

  • Die Idee hinter diesem Verhalten mit der ".xinitrc" ist, dass dort der Window-Manager eingetragen ist. Falls der Window-Manager sich beendet (Benutzer hat sich ausgeloggt oder Window-Manager ist abgestürzt), dann beendet sich auch der X-Server. Das Init bekommt das mit und startet die ganze Sache erneut.


    Der naheliegendste Weg, wenn einem das "kill -STOP" nicht gefällt, wäre also "openbox" als einfachen Window-Manager zu installieren und dort einzutragen. Softhddevice wird dann im Kontext des Window-Managers gestartet.


    Vorteil dieses Vorgehens: Man bekommt so auch die Option "Fremdprogramme" zu starten. Firefox kann zum Beispiel ohne Window-Manager nicht sauber betrieben werden, weil weder Menüs noch Popup-Fenster sauber funktionieren.


    Das "kill -STOP" ist dafür gedacht keine künstliche Abhängigkeit zwischen VDR und einem Window-Manager zu schaffen, denn softhddevice ist eines der mittlerweile immer weniger werdenden Programme die auch ohne Window-Manager fehlerfrei arbeiten.

Jetzt mitmachen!

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