お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2012-09-26 10:40:34

HDM
メンバ
登録日: 2012-01-15

指定した時刻(cron実行の5分位前)にサスペンドから復帰したい

http://d.hatena.ne.jp/payapara/20090626/1246029897
を参考に、サスペンドから自動で復帰させようとしています。

Wubiでインストールしたときはうまく動いていましたので、
ハード的には対応できるはずです。その後Windowsを消して再インストールした後から
動かなくなりました。

ひとまず以下のスクリプトでテストしています。
----------------------------------------
#!/bin/bash
echo 0 > /sys/class/rtc/rtc0/wakealarm
echo date '+%s' -d '+ 5 minutes' > /sys/class/rtc/rtc0/wakealarm
cat /proc/driver/rtc

その結果、以下の様に表示させるところまではたどり着きました。

rtc_time    : 09:51:51
rtc_date    : 2012-09-26
alrm_time    : 09:56:51
alrm_date    : 2012-09-26
alarm_IRQ    : no
alrm_pending    : no
update IRQ enabled    : no
periodic IRQ enabled    : no
periodic IRQ frequency    : 1024
max user IRQ frequency    : 64
24hr        : yes
periodic_IRQ    : no
update_IRQ    : no
HPET_emulated    : yes
BCD        : yes
DST_enable    : no
periodic_freq    : 1024
batt_status    : okay

時間は正しく設定できるのですが、
sudo pm-suspend
を実行してサスペンドしても、指定時刻に再起動してくれません。
alarm_IRQ    : no の部分が yes でないと起動できないのかなあ、などと考えています。

ちなみに、
/etc/default/rcS
中にある、以下の部分を
utc=no
に変更して、JSTで動かしています。

どなたか心当たりなどありませんでしょうか?

オフライン

 

#2 2012-09-28 10:43:24

HDM
メンバ
登録日: 2012-01-15

Re: 指定した時刻(cron実行の5分位前)にサスペンドから復帰したい

どうにもうまく行かないので、違う方法で目的を達成しました。

#!/bin/bash
export sdate=$1
date=`/usr/bin/php << 'EOF'
<?php
date_default_timezone_set("Asia/Tokyo");
$date = strtotime(GETENV("sdate"));
echo "\r".$date;
EOF`
rtcwake -l -m mem -t $date

上記のスクリプトで、日時を指定してスリープさせることができました。
○○.sh "2012/09/29 06:25"
のように使用します。
ご参考までに。

オフライン

 

#3 2012-09-28 10:45:52

HDM
メンバ
登録日: 2012-01-15

Re: 指定した時刻(cron実行の5分位前)にサスペンドから復帰したい

>上記のスクリプトで、日時を指定してスリープさせることができました。

起動日時を指定してスリープからの復帰をさせることができる、
の間違いでした。

オフライン

 

#4 2012-09-28 10:59:52

HDM
メンバ
登録日: 2012-01-15

Re: 指定した時刻(cron実行の5分位前)にサスペンドから復帰したい

一応呼出側のスクリプトも貼っておきます。
何かの参考になれば。


#!/bin/bash

NOWSEC=`date +"%s"`
echo ${NOWSEC}
perl -e '@t=localtime('${NOWSEC}');printf("%d/%02d/%02d %02d:%02d:%02d\n",@t[5]+1900,@t[4]+1,@t[3],@t[2],@t[1],@t[0])'

TODAYSTR=`date +"%Y/%m/%d"`
echo $TODAYSTR

TODAYTIME=`date -d "${TODAYSTR} 06:25:00" +'%s'`
TODAYUPSTR=`perl -e '@t=localtime('${TODAYTIME}');printf("%d/%02d/%02d %02d:%02d:%02d\n",@t[5]+1900,@t[4]+1,@t[3],@t[2],@t[1],@t[0])'`
echo $TODAYUPSTR

TOMORROWTIME=`expr ${TODAYTIME} + 24 \* 60 \* 60`
TOMORROWUPSTR=`perl -e '@t=localtime('${TOMORROWTIME}');printf("%d/%02d/%02d %02d:%02d:%02d\n",@t[5]+1900,@t[4]+1,@t[3],@t[2],@t[1],@t[0])'`
echo $TOMORROWUPSTR

echo "Wakeup:"
if [ ${TODAYTIME} -lt ${NOWSEC} ]
then
    TIMESTR=${TOMORROWUPSTR}
else
    TIMESTR=${TODAYUPSTR}
fi
echo $TIMESTR

gksudo /home/hdm/tool/alarm/wakeup_cu/wakeup.sh "$TIMESTR"

exit $?

オフライン

 

#5 2013-01-20 18:21:33

moerrari
新しいメンバ
登録日: 2012-10-20

Re: 指定した時刻(cron実行の5分位前)にサスペンドから復帰したい

同様にalarm_IRQ    : noでスリープから復帰することができない現象に悩まされています。
文中のリンク先http://d.hatena.ne.jp/payapara/20090626/1246029897のスクリプトをそのまま使用したところalarm_IRQ    : yesになりハイバネートからも復帰することができましたが、投稿者のスクリプトや他サイトに記述してあるような例で設定すると、alrm_date : はアスタリスク表示ではなく日付が設定されるにも関らず、alarm_IRQ    : noとなっていまいます。
リンク先と投稿者のどちらもスクリプトも/sys/class/rtc/rtc0/wakealarmに設定している%sの値は同じようなのですが…。

オフライン

 

Board footer

Powered by FluxBB