Mám problém se spuštěním úkolu ve stanoveném čase po probuzení z hibernace (uspání na disk):
1. naplánuji úkol - skript pro nahrávání v mencoderu pomocí at:
#!/bin/sh
echo "Nahrávať od HH:MM:"
read zaciatok
echo "Zadaj dobu nahrávania v sekundách:"
read doba
echo "mencoder tv:// -tv driver=v4l2:buffersize=64: -ovc lavc -lavcopts vcodec=libxvid:vbitrate=1800:aspect=4/3 -oac mp3lame -vf pp=fd,denoise3d=3:4:6 -ffourcc DIVX -endpos $doba -o test.avi" > /home/hic/Plocha/progr.txt
sudo at $zaciatok -f /home/hic/Plocha/progr.txt
echo "Nahrávať sa bude od $zaciatok po dobu $doba s."
2. nastavím probuzení PC z hibernace skriptem:
#!/bin/sh
echo "Zadaj dátum a čas nahrávania vo formáte podľa príkladu: Sep 21, 2009 20:50:30"
echo "----------------------------------------------------"
echo "mesiace: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
read datum
# vynuluje počítadlo rtc času do spustenia/prebudenia PC:
sudo bash -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
# prepočíta zadaný čas a dátum nahrávania (CEST) na čas v UTC: UTC=CEST-7200:
# 1. počet sekúnd od 1.1.1970 do času nahrávania v CEST:
recCEST=`date -u --date "$datum" +%s`
recUTC=$((recCEST-7200))
# teraz sa vypočíta čas spustenia počítača recUTC - 5 min. (predstih spustenia PC pred zaciatkom nahrávania 300s):
start=$((recUTC-300))
# zadá v predchádzajúcom výpočte vypočítaný počet sekúnd do spustenia počítača (so zarátaným predstihom):
sudo bash -c "echo $start > /sys/class/rtc/rtc0/wakealarm"
echo "Počítač sa zapne 300s pred začiatkom nahrávania."
3. uspím počítač na disk
Problém: PC se správně probudí v nastaveném čase, nicméně mencoder se nespustí v specifikovanou dobu $zaciatok, ale z nějakého důvodu, na který nejsem schopný přijít se spuštění opozdí o cca 4 minuty. Systém je nazatížen, CPU 0-1%. Když skript pro nahrávání spustím na běžícím počítači, mencoder nahrává jak jsem nastavil přesně od času $zaciatok.
Neví někdo co s tím?
Díky.
PS.: Zjistil jsem, že spuštění mencoderu (nebo jiného úkolu) naplánované démonem atd proběhne správně po restartu/ normálním spuštění počitače. Problém je pouze v jejich spuštění po probuzení z hibernace! Napadlo mně, že třeba atd po probuzení z hibernace neběží, ale to by se úkol nespustil vůbec - a on se sice spouští, ale z nepochopitelného důvodu opožděně o cca 3,5 min. Navíc, když hned po probuzení na zkoušku naplánuji úkol pomocí příkazu at se zadáním do terminalu v nejbližší minutě, úloha se spustí správně.
S cron-em takový problém není, po probuzení z hibernace spustí obecný úkol v přesně stanoveném čase, ale když například zadám spuštění skriptu (konkrétní případ, který mě zajímá), spustí se nahrávání jen na cca 1s a poté se hned ukončí - ač takové ukončení není stanoveno:
51 2 27 9 0 /home/hic/nahravanie.sh
#!/bin/sh
mencoder tv:// -tv driver=v4l2:buffersize=64: -ovc lavc -lavcopts vcodec=libxvid:vbitrate=1800:keyint=25:aspect=4/3 -oac mp3lame -vf pp=fd,denoise3d=3:4:6 -ffourcc DIVX -o test.avi