Cron job stopper efter ca 40 sekunder

Tags:    linux

Hey, first post :)

Jeg blev lidt træt af at DR's netradio var så svær at få til at køre i Linux, og ville egentlig også gerne have noget bedre lydkvalitet. Jeg har derfor skrevet et lille script der optager og koder en udsendelse direkte fra lydinputtet. Scriptet er placeret i /usr/bin/timed-record og ser ud på følgende måde:

Fold kodeboks ind/udKode 


Når jeg kører scriptet med parametrene "timed-record 05:00 ~/RadiumElektronisk.mp3" virker det fint. Jeg har herefter tilføjet følgende linie i min crontab ved hjælp af crontab -e:

44 23 * * * timed-record 5:00 ~/RadiumElektronisk.mp3

Tiden går, scriptet eksekveres, og med ps aux kan jeg se at både lame og sound-recorder kører. Efter ca 40 sekunders optagelse (har kontrolleret ved at starte mp3-filen, som er 40-41 sek lang) stopper processen. Jeg kan ikke rigtig finde ud af hvorfor, men har en teori om at cron måske ikke er glad for den store systemload der er, siden LAME trækker en del tænder ud på denne her maskine (550Mhz).

Min distro er en Ubuntu "Breezy Badger". På forhånd tak :)



3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Hey Ulrik,
du må da hellere end gerne svare på dine egne spørgsmål.

Svaret ligger her jo stadig for andre brugere som kan få brug for netop svaret til det problem :)

Bare husk at lukke tråden bagefter ;)



Nå, jeg gætter på at det ikke er helt reglementeret at svare på sit eget spørgsmål, men jeg fandt løsningen efter lang tids frustration :).
Problemet gik tilsyneladende ud på at LAME - når den encoder - outputter en masse information til stdout. Dette gøres på en enkelt linie, hvorfor liniebufferen langsomt bliver fyldt op, og cron til sidst lukker programmet. En --silent parameter på LAME løste problemet, og nu kører det hele upåklageligt.
Ville bare lige komme med løsningen, hvis nu der var andre der kom ud for noget lignende.



Du må gerne svare på dit eget spørgsmål hvis du ikke har fået noget svar, eller selv har fundet ud af det.



t