Fórum Root.cz
Hlavní témata => Software => Téma založeno: Tomas Holy 13. 10. 2013, 13:17:37
-
ahoj, resim tu nahravani streamu z ip kamery, nejak jsem se zadrhl,
mam predstavu ze budu nahravat kazdou hodinu zvlast do souboru s presahem +- 5 minut
tzn 12:55 - 14:05 13:55 - 15:05 atd ...
nahravat bude mplayer pred -dumpstream
udelam si script, pustim cronem, ale resim ted jak ho ukoncit ...
bud abych nejak dokazal spustit ten mplayer jenom na urcitou dobu a nebo nejak 'pojmenovat' proces abych mo homl killnout aniz bych killnul ten co u bezi
napadlo me reseni mit 24 scriptu, al eto mi prijde dost neohrabane
diky TH
-
Jestli to ma byt bash scriptem, pouzil bych mktemp, ten ti zajisti jednoznacnost jmena souboru. Az ho vytroris, tak si ho proste nekoam odkopirujes a do nazvu mu pridelis aktualnu datum...
#!/bin/sh
echo;
OUT="$(mktemp)";
ls > $OUT;
cat $OUT;
echo;
echo $OUT;
-
Predpokladam, ze na prikazove radce bude parametr -dumpfile. ps aux | grep mplayer mi zobrazi vsechny instance, podle nazvu souboru v dumpfile, ktery tam nekde bude, si vygrepuji to spravnou, z ni uzmu cislo procesu a zavrazdim (-15). Nasledne zkontroluji a kdyz se nepovedlo, zavrazdim znovu (-9).
-
Proces bych zjistoval takhle:
#!/bin/sh
smplayer &
PID=$(echo $!);
echo $PID;
-
Pokud by stacilo, aby se ten proces sam killnul po urcitem case:
man timeout
-
diky moc, zatim zkusim rychle ten timeout, a zbytek musim nastudovat :)
-
PS: Tusim, ze standardne timeout posila SIGTERM, SIGKILL jde s urcitym zadanym odstupem vynutit pres -k, pokud se to mezitim neukoncilo.
Tady by melo stacit jednoduse:
timeout 70m mujskript.sh
:)
-
tak jsem narazil na zajimavy problem
kdyz spustim s radky toto
timeout 4 mplayer http://10.0.0.107/videostream.asf -user admin -dumpstream -dumpfile /home/RAID5/KAMERA/18.avi
tak mi krasne nahraje sec videa
ovsem script a timto obsahem (dle me identickym)
#!/bin/bash
timeout 4 mplayer http://10.0.0.107/videostream.asf -user admin -dumpstream -dumpfile /home/RAID5/KAMERA/18.avi
nahravani nespusti, rve to
mplayer: could not connect to socket
mplayer: No such file or directory
jakoby neposilal mplayeru ty parametry :(
-
Urcite to jde nejak zazavorkovat ten prikaz, ale v tomhle sem bash nikdy poradne neovladal :P.
Nicmene oddelit to mplayer ... do samostatneho skriptu by melo pomoct.
-
to jsem zkousel, pomoci echo > si vytvorim script, a ten zavolam a stejna chyba :(
-
Necetl sem to cely, ale nekdo resil podobny problem, snad pomuze:
http://forums.opensuse.org/english/other-forums/development/programming-scripting/484357-need-help-use-timeout-utility-shell-script.html
-
tomaskom: dik za odkaz, louskam to uz po treti a nejsem scopen pochytit jak to presne zavorkuje aby to slapalo
on to tam nejak uplne nakonci vysvetluje, ale me to proste nedochazi
ted jsem ve stadiu kdy prikaz spusteny v radce takto :
timeout 10s mplayer a.avi
slape a prehrava
a script s timto obsahem:
#!/bin/bash
timeout 10s mplayer a.avi
proste nejede napise
mplayer: could not connect to socket
mplayer: No such file or directory
je zajimavy ze chybova hlaska odpovida tomu, ze soubor a.avi neecistuje a ne ze spustim mplayer bez parametru
teda fakt jsem z toho jelen :(
-
Asi sem na to kapl, problem bude v tom, ze mplayer je zamyslen jako interaktivni program. Pokud pouziju ve skriptu
timeout --foreground 10 mplayer ./film.avi, s tim parametrem --foreground to bezi! 8)
-
Jeste bys mohl juknout na parametr -noconsolecontrols.