donc qqchose du style :
#!/bin/sh
vlc rtsp://... --sout "#std{access=file,mux=ts,url=$OUTFILE}" -I dummy &
sleep 120
exit 0
explications :
- vlc se lance dans un process (utilisation du &)
- le sleep va faire le process principale, et donc faire patienter vlc
- et l'exit va killer le script et vlc
Le problème : si je coupe/tue VLC .... le sleep va perdurer ...
j'aimerai bien que le "sleep" attende suivant 2 critères :
- le laps de temps défini
- ou la fin process VLC
je pense que c'est possible en bash, mais je ne sais pas trop par où débuter ...
# Peut-être une clownerie, mais...
Posté par Gyro Gearllose . Évalué à 1.
Genre :
vlc rtsp://... --sout "#std{access=file,mux=ts,url=$OUTFILE}" -I dummy & && sleep 120
En espérant que ça aide...
[^] # Re: Peut-être une clownerie, mais...
Posté par Gyro Gearllose . Évalué à 2.
A la rigueur, il faudrait encadrer l'appel à vlc ... & par des parenthèses, mais ça ne résoud pas le problème pour autant...
Faudrait peut-être voir du côté des commandes pidof, at, kill.... A moins qu'il n'y ait plus simple...
# Essai
Posté par Sisyphe Plâtrier . Évalué à 1.
(vlc || exit -1) & sleep 120; exit 0;
My1.5ct
[^] # Re: Essai
Posté par Pascal Terjan (site web personnel) . Évalué à 5.
[^] # Re: Essai
Posté par manatlan (site web personnel) . Évalué à 2.
mais si je veux que du code s'execute après le sleep (par exemple : suppression d'un fichier) .... comment faire ?
exemple :
# creation d'un fichier
echo "record en cours" > rec.txt
vlc &
sleep 120
#suprresion du fichier precedemment cree
rm rec.txt
exit 0
[^] # Re: Essai
Posté par Pascal Terjan (site web personnel) . Évalué à 2.
[^] # Re: Essai
Posté par manatlan (site web personnel) . Évalué à 3.
[^] # Re: Essai
Posté par Pascal Terjan (site web personnel) . Évalué à 3.
[^] # Re: Essai
Posté par manatlan (site web personnel) . Évalué à 1.
[^] # Re: Essai
Posté par Pascal Terjan (site web personnel) . Évalué à 2.
C'est juste le fichier qui sera supprimé de suite, et le script essayera de le re-supprimer après la fin des 120s.
[^] # Re: Essai
Posté par manatlan (site web personnel) . Évalué à 2.
[^] # Re: Essai
Posté par manatlan (site web personnel) . Évalué à 2.
quand je recupere le pid de vlc (du fichier)
et que je kill vlc (kill xxxx)
le process vlc s'arrete
le process du script s'arrete
mais il reste toujours un process "sleep" ;-( ...
pourquoi n'est il pas tué avec celui du script ? et y a t il une soluce ?
# Voir là...
Posté par David Decotigny (site web personnel) . Évalué à 1.
http://linuxfr.org/~11010010/20437.html
Et un frontend python ici :
http://forum.ubuntu-fr.org/viewtopic.php?pid=159297#p159297
[^] # Re: Voir là...
Posté par manatlan (site web personnel) . Évalué à 2.
C'est MOI qui développe le frontend python sur TON script ;-)
je cherche juste à améliorer ton script ... car le process "sleep" continue de tourner (ça fait pas beau ;-)
Ce pourquoi je posais des questions ici pour faire avancer le schmilblick ...
suis en train de préparer la 0.3 ;-)
[^] # Re: Voir là...
Posté par David Decotigny (site web personnel) . Évalué à 1.
je me disais aussi que la ligne vlc ressemblait a qqch de connu...
Une solution qui marche peut etre (pas testee...) :
vlc .... &
pidvlc=$!
sleep .... &
pidsleep=$!
_trap_kill ()
{
trap "" KILL EXIT QUIT INT TERM
echo killing $pidvlc
kill $pidsleep
kill $pidvlc
sleep 3
sync
exit 0
}
trap _trap_kill KILL EXIT QUIT INT TERM
wait $pidsleep
[^] # Re: Voir là...
Posté par manatlan (site web personnel) . Évalué à 2.
et j'ai refait entièrement le script à partir de zero
il est maintenant absolument parfait !!!
- aucun process ne reste en mem (dans tous les cas)
- un zenity/progress permet d'annuler le recording
- et j'ai remonté l'appel au "AT" au niveau du python
tu trouveras tout ici (dans la 04.b):
http://manatlan.free.fr/setup/freecorder.tar.gz
voir script "frecord.sh"
[^] # Re: Voir là...
Posté par David Decotigny (site web personnel) . Évalué à 1.
Juste un detail : le kill -9 est peut-etre un peu violent, je sais pas s'il va bien plaire a vlc. Ca serait peut-etre bien de faire un truc genre kill $pid ; sleep 3 ; kill -9 $pid 2> /dev/null pour lui laisser une chance de terminer proprement.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.