runvdr und su -c

  • Hi,


    aufgrund einiger unzulänglichkeiten bin ich von Suse 8.0 auf gentoo 1.4 r4 umgestiegen.


    Soweit so gut, klappt auch fast alles recht zufriedenstelllend, aber eben nur fast.


    Früher (Suse) hat mein runvdr mit
    nice -n -5 su -c "$VDRCMD" $VDRUSR


    mein VDR mit Priorität -5 und als user VDRUSR gestartet.


    Heute liefert es vdr threads von root als nice 0.


    Ein Testen alles
    su -c whoami vdr
    vdr= angelegter user
    liefert root als antworte (wenn ich das als root mache versteht sich).


    Wie funzt su unter gentoo vernünftig?
    ein
    su vdr
    lässt mich zum vdr user werden, aber warum funzt das -c nicht?

    Server: Athlon II X2 250 - Asus M3N-H HDMI - 2x1GB RAM - 3TB HDDs -
    1 x Digital Devices Cine S2 V6 DVB-S2 (SD Sender im Highband funktionieren mit der Karte nach wie vor unter Linux nicht, unter Windows schon)
    3 x Nova Budget (die ich eigentlich durch die Cine S2 mit Erweiterungsmodul ersetzen wollte, leider aber für die SD Sender immer noch brauche)
    mit yavdr 0.4.0

  • Hi,


    ich denke das lieg daran das in $VDRCMD " und ' drin sind. daher wird das warscheinlich etwas abgeschnitten.
    Wo steht bei dir die Zeile
    "nice -n -5 .... " ?
    Hast du das ebuild genommen oder selber kompiliert?
    Hat dein vdr user eine valid shell? "su - vdr" funzt anscheinend??


    und aus der man page:
    SYNOPSIS
    su [-] [username [args]]
    wenn das vorher anders auch gefunzt hat, liegts vielleicht an der SuSE ... (CMD und USER vertauscht)


    bei mir funzt das....


    tricorder root # cat /etc/passwd | grep vdr
    vdr:x:1000:100::/tmp:/bin/bash


    tricorder root # su - vdr -c "touch /tmp/test"


    tricorder root # ls -l /tmp/test
    -rw-r--r-- 1 vdr users 0 2003-04-22 19:34 /tmp/test


    ich hoffe das reicht zur fehlersuche.


    gruss mad

  • Das es bei suse und redhat so ging wie oben steht ist Fakt, da ist auch nichts an den "" falsch ;)


    ja, vdr hat eine valid shell.
    su vdr -c command
    funktioniert, danke.


    Nur leider wird unter gentoo das nice in
    nice -n -5 su vdr -c command
    zwar für das su verwendet, aber es landet nicht beim command, entgegen dem was bei suse und redhat passiert, da wird command dann schön mit nice -n -5 gestartet.
    Sprich command wird nun zwar als user vdr ausgeführt, aber immer noch mit nice 0.


    Und ein Konstrukt mit
    su vdr -c sudo /usr/bin/nice -n -5 command
    krieg ich irgendwie nicht zum funktionieren ;(
    Dann meckert sudo immer (ich hab schon jede menge "" versuche in der Zeile oben gestartet, aber ich versage immer kläglich.

    Server: Athlon II X2 250 - Asus M3N-H HDMI - 2x1GB RAM - 3TB HDDs -
    1 x Digital Devices Cine S2 V6 DVB-S2 (SD Sender im Highband funktionieren mit der Karte nach wie vor unter Linux nicht, unter Windows schon)
    3 x Nova Budget (die ich eigentlich durch die Cine S2 mit Erweiterungsmodul ersetzen wollte, leider aber für die SD Sender immer noch brauche)
    mit yavdr 0.4.0

  • Hallo Egalus,


    Zitat

    Ein Testen alles
    su -c whoami vdr
    vdr= angelegter user
    liefert root als antworte (wenn ich das als root mache versteht sich).


    RTFM
    man whoami
    ->

    Zitat

    whoami displays the login name corresponding to the current
    effective user ID. If you have used su to temporarily adopt
    another user, whoami will report the login name associated
    with that user ID.


    Gruesse
    Markus

    yaVDR 0.5.0a
    DD Cine S2 V6.5 & DuoFlex S2, ASRock B75 PRO3, NVidia GT610-SL, Core i3-2120T, 4GB, 60GB SSD, 1.5TB
    Samsung UE46F8090, Sony STR-DB780, 5.0 surround A.C.T. speaker

  • Hi,


    so wie du den nice einsetzt renicest du ja auch den su ;)
    Versuch das mal richtig rum:
    su - martin -c "nice -n 5 sleep 3000&"
    und das gibt dann:
    PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
    28273 martin 13 5 468 468 400 S N 0,0 0,3 0:00 sleep


    also .... versuch das mal.
    Und SuSE macht das andersrum?? wird mir immer unsympatischer.... obwohl das auch am fehlenden - liegen kann.



    gruss mad

  • das mit dem sudo funktioniert.


    mark2: auf suse und redhat gibts aber den usernamen aus der per su eingenommen wurde. mal davon ab war das eine veranschaulichung dafür dass ich mit dem oben genannten eben nicht vdr werde sondern root bleibe unter gentoo.


    @all: wie schon erwähnt, das ganze da ganz oben hat monatelang wunderbar unter suse und redhat funktioniert und dass ein nice nicht an den prozess weitergegeben wird der von nice gestartet wurde sehe ich definitiv als Schwäche an, wofür ist nice denn dann gut.
    Das ganze liegt an dem gepatchten su von gentoo (ich sag nur wheel).


    Die Version
    nice -n -5 sudo -u vdr programm
    funktioniert dann unter gentoo auch endlich wie gewünscht.


    Danke allen nochmal für die Hilfe.

    Server: Athlon II X2 250 - Asus M3N-H HDMI - 2x1GB RAM - 3TB HDDs -
    1 x Digital Devices Cine S2 V6 DVB-S2 (SD Sender im Highband funktionieren mit der Karte nach wie vor unter Linux nicht, unter Windows schon)
    3 x Nova Budget (die ich eigentlich durch die Cine S2 mit Erweiterungsmodul ersetzen wollte, leider aber für die SD Sender immer noch brauche)
    mit yavdr 0.4.0

Jetzt mitmachen!

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