Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
ast64
- Beiträge: 85
- Registriert: 25.11.2005 14:44:37
Beitrag
von ast64 » 08.08.2008 22:01:07
Hallo Leute,
mit folgendem Miniscript mache ich einen Streamdump:
Code: Alles auswählen
#!/bin/bash
# stream_rec
at $1 << EOF
kill $$
EOF
while true
do
mplayer -dumpstream -dumpfile $HOME/streamdump.mp3 URL_DES_STREAMS > /dev/null 2>&1
sleep 5
done
Das Script starte ich z.B. mit 'stream_rec 22:00' und es beendet sich wie gewünscht zur angegebenen Zeit, jedoch läuft mplayer weiter und zeichnet weiter auf. Wie muss ich das Script ändern, damit auch die Aufnahme beendet wird? Ein 'killall mplayer' kommt nicht in Frage, denn gelegentlich laufen mehrere Instanzen von stream_rec mit unterschiedlichen URLs. Ich will also ganz gezielt diesen einen Childprozess (sauber) beenden.
Desktop: Eigenbau | Pentium III | 256MB RAM | 32GB + 300GB HDD | Crunchbang 9.04.01 | Openbox
Notebook: Acer Extensa 5220 | Celeron 540 | 1,5GB RAM | 500GB HDD | Debian GNU/Linux "Squeeze" [2.6.32] | Fluxbox
-
gms
- Beiträge: 7798
- Registriert: 26.11.2004 20:08:38
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von gms » 08.08.2008 22:18:24
versuchs mal so:
Code: Alles auswählen
#!/bin/bash
# stream_rec
nohup mplayer -dumpstream -dumpfile $HOME/streamdump.mp3 URL_DES_STREAMS &>/dev/null &
MPPID=$!
at $1 << EOF
kill $MPPID
EOF
Gruß
gms
-
ast64
- Beiträge: 85
- Registriert: 25.11.2005 14:44:37
Beitrag
von ast64 » 08.08.2008 23:21:34
Ok, das klappt schonmal prima! Danke sehr!
Angenommen, der Stream wird kurzzeitig unterbrochen. Wie erreiche ich, dass sich die Aufnahme automatisch mit einem neuen Dateinamen fortsetzt? Also irgendwie sowas:
Code: Alles auswählen
#!/bin/bash
# stream_rec
nohup mplayer -dumpstream -dumpfile $HOME/streamdump_`date +%Y-%m-%d_%H-%M-%S`.mp3 URL_DES_STREAMS &>/dev/null &
MPPID=$!
at $1 << EOF
kill $MPPID
EOF
Desktop: Eigenbau | Pentium III | 256MB RAM | 32GB + 300GB HDD | Crunchbang 9.04.01 | Openbox
Notebook: Acer Extensa 5220 | Celeron 540 | 1,5GB RAM | 500GB HDD | Debian GNU/Linux "Squeeze" [2.6.32] | Fluxbox