externremux.sh - wie richtig beenden?

  • moin!


    ich nutze externremux in kombination mit meinem chumby um per wlan radio zu streamen, was auch astrein klappt.


    dazu meine externremux.sh:


    Bash
    #!/bin/sh
    killall ffmpeg
    /usr/bin/ffmpeg -f mpegts -i - -vn -acodec libmp3lame -ab 128000 -ar 44100 -f mp3 -


    jedoch funktioniert das killall ffmpeg nicht, sodass ich nach ein paar tagen tausende zombie prozesse habe:



    das beenden scheint also mit killall nicht richtig zu klappen.


    jemand ne idee wie ich das sauber gelöst bekomme?


    danke,
    infinite

    kuifje
    asus m2n-vm | Athlon 5600 | Nvidia 9300GE | TT S2-3200
    yaVDR 0.4 | 1.7.21
    haddock
    asus p4pe | 2ghz | 3x DVB-S Budget | 2x500gb
    debian lenny 2.6.29.3 | e-tobi 1.7.0 | streamdev cvs | live


    <30.12.07 <igel>sid fuer den gewissen kick>
    <01.04.08 <igel>ich kann eh nix ausser debian pakete installiern>
    <15.12.09 igel hasst linux>
    <23.02.10 <igel> easyvdr is nur easy wenn es easy is>

  • Falls Du schon streamdev-0.5.0/0.4.0 hast (nicht -pre), bedien Dich bei der neuen externremux.sh. Die wichtigsten Zutaten:

    Code
    FIFO=/tmp/externremux-${RANDOM:-$$}
    mkfifo "$FIFO"
    trap "trap '' EXIT HUP INT TERM ABRT PIPE CHLD; kill -INT 0; sleep 1; fuser -k '$FIFO'; rm '$FIFO'" EXIT HUP INT TERM ABRT PIPE CHLD
    cat "$FIFO" <&- &
    exec 3<&0
    /usr/bin/ffmpeg -f mpegts -i - -vn -acodec libmp3lame -ab 128000 -ar 44100 -f mp3 $FIFO 0<&3 >/dev/null &
    set -o monitor
    wait


    Die Unterstützung für ffmpeg zum Radio streamen wird demnächst in die originale externremux.sh eingebaut (siehe auch [geht!] mimetype audio für externremux-radio, war: ffmpeg, wie mimetype festlegen?)

  • nee, hab noch die pre (mit hardcoded mime settings :unsch). vlt sollte ich dann mal das update durchführen, wenns keine andere lösung gibt.

    kuifje
    asus m2n-vm | Athlon 5600 | Nvidia 9300GE | TT S2-3200
    yaVDR 0.4 | 1.7.21
    haddock
    asus p4pe | 2ghz | 3x DVB-S Budget | 2x500gb
    debian lenny 2.6.29.3 | e-tobi 1.7.0 | streamdev cvs | live


    <30.12.07 <igel>sid fuer den gewissen kick>
    <01.04.08 <igel>ich kann eh nix ausser debian pakete installiern>
    <15.12.09 igel hasst linux>
    <23.02.10 <igel> easyvdr is nur easy wenn es easy is>

  • verstehe ich dich richtig dass ich auch meine bestehende pre version abändern kann?


    die betreffende stelle in extern.c wird wohl diese sein:


    Code
    if (execl("/bin/sh", "sh", "-c", cmd.c_str(), NULL) == -1) {
                            esyslog("streamdev-server: externremux script '%s' execution failed: %m", cmd.c_str());
                            _exit(-1);
                    }


    wo genau soll ich jetzt den setpgid aufruf einfügen?

    kuifje
    asus m2n-vm | Athlon 5600 | Nvidia 9300GE | TT S2-3200
    yaVDR 0.4 | 1.7.21
    haddock
    asus p4pe | 2ghz | 3x DVB-S Budget | 2x500gb
    debian lenny 2.6.29.3 | e-tobi 1.7.0 | streamdev cvs | live


    <30.12.07 <igel>sid fuer den gewissen kick>
    <01.04.08 <igel>ich kann eh nix ausser debian pakete installiern>
    <15.12.09 igel hasst linux>
    <23.02.10 <igel> easyvdr is nur easy wenn es easy is>

  • danke, das scheints gebracht zu haben!


    edit: doch nicht. nach ner zeit tauchen die zombies wieder auf...

    kuifje
    asus m2n-vm | Athlon 5600 | Nvidia 9300GE | TT S2-3200
    yaVDR 0.4 | 1.7.21
    haddock
    asus p4pe | 2ghz | 3x DVB-S Budget | 2x500gb
    debian lenny 2.6.29.3 | e-tobi 1.7.0 | streamdev cvs | live


    <30.12.07 <igel>sid fuer den gewissen kick>
    <01.04.08 <igel>ich kann eh nix ausser debian pakete installiern>
    <15.12.09 igel hasst linux>
    <23.02.10 <igel> easyvdr is nur easy wenn es easy is>

    Einmal editiert, zuletzt von infinite ()

Jetzt mitmachen!

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