Portál AbcLinuxu, 10. května 2025 04:21

Dotaz: Smyčka while, pgrep a předání parametrů z proměnných

31.3.2017 13:20 Jix0 | skóre: 24 | blog: Not only for humans
Smyčka while, pgrep a předání parametrů z proměnných
Přečteno: 263×
Odpovědět | Admin
Dobrý den.

Lamu si hlavu nad skriptem, ktery ma za ukol hlidat webkamerove streamy ktere provozujeme. Jelikoz streamu je vice, tak kazdy z nich je spousten samostatnym skriptem, ktery zaroven hlida, jestli potrebny proces bezi. To je realizováno pomoci smycky "while". Nechavam pomoci "pgrep -x" zjistit, jestli bezi potrebny proces s danymi parametry. Problem vsak nastava v pripade, ze jako nazev procesu a parametry, pridam 2 promenne za sebou.

Pro ukazku o co se jedna, prikladam kod skriptu:
#!/bin/bash
export FFREPORT=file=/dev/shm/ffmpeg-girova-$(date +%Y%m%d_%H%M%S).log
export ffserverbin=/usr/bin/ffserver
export ffmpegbin=/usr/bin/ffmpeg
export cam1="-v verbose -report -stimeout 2000000 -max_delay 1000000 -rtsp_transport tcp -rtsp_flags prefer_tcp -rtbufsize 20M -max_error_rate 1.0 -r 20 -i rtsp://10.1.xxx.xx:554/live.sdp -an -vf fps=20 -threads 2 http://localhost:8090/feed2.ffm"

if pgrep -x "$ffserverbin" > /dev/null 2>&1
    then
      echo "FFSERVER jiz bezi" > /dev/null
    else
      sleep 2
        eval $ffserverbin &
   fi
done

sleep 2
eval $ffmpegbin $cam1 &


while :
  do

    if pgrep -x "$ffmpegbin $cam1" > /dev/null 2>&1
      then
        echo "Kamera Girova bezi" > /dev/null
      else
        echo "Stream nebezi, restartuji proces" &&
  eval $ffmpegbin $cam1 &
fi
sleep 10
done
Prikaz pgrep -x "$ffmpegbin $cam1" se neprovede spravne, nevypise mi radek odpovidajici procesu a parametrum a tak cela while smycka nefunguje spravne a pokousi se tak spoustet porad dokola
eval $ffmpegbin $cam1 &
.

Kde prosim delam chybu? Uz se s tim patlam nekolik dni, a i pres nalezene priklady na stackoverflow si s tim nevim moc rady..

Diky za odpovedi
If you will not cooperate, you are to be executed! | Starting as a DJ
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

31.3.2017 16:07 NN
Rozbalit Rozbalit vše Re: Smyčka while, pgrep a předání parametrů z proměnných
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nekolik veci. Rekl bych, ze promenne binarek a prametru neni nutne exportovat. Dale bych se vyhnul eval obloukem, proste tu binarku pust:
. $ffmpegbin $cam1 &
No a konecne nebude jednoduzsi si zjistit PID procesu na backgroudu?
. $ffmpegbin $cam1 &
PID=$!
echo $PID
Bedňa avatar 31.3.2017 18:13 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Smyčka while, pgrep a předání parametrů z proměnných
Odpovědět | | Sbalit | Link | Blokovat | Admin
Namiesto pgrep -x použi pgrep -fx

Inak súhlas aj s tým čo napísal NN.
KERNEL ULTRAS video channel >>>
3.4.2017 12:52 Jix0 | skóre: 24 | blog: Not only for humans
Rozbalit Rozbalit vše Re: Smyčka while, pgrep a předání parametrů z proměnných
Diky za tip.. zkusim i radu od NN jak si najdu chvili casu..
If you will not cooperate, you are to be executed! | Starting as a DJ
3.4.2017 12:57 NN
Rozbalit Rozbalit vše Re: Smyčka while, pgrep a předání parametrů z proměnných
Nevim jak to bude fungovat u vice instanci ffmpeg, mozna nebude..

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.