yuji_aoki
2023年12月25日 12時50分
お世話になります。
Armadillo-IoT A6を用いて間欠動作によるシステムを作成しております。
システムは、
シャットダウンモード -> 起床(RTC) -> センサ値取得 -> クラウド送信 -> シャットダウンモード
と動作させたく、
crontab にて
@reboot /root/work.sh
work.shにて
!/bin/sh python3 /root/work.py aiot-alarm-poweroff +180
としてみたのですが、直接
root@armadillo:~# sh work.sh
と実行した場合は、work.pyとaiot-alarm-poweroff +180 が実行され、180秒後にA6が起動するのですが、
起動後はwork.pyは実行されるのですが、aiot-alarm-poweroff によるpowerpff がなぜか行われず、緑の起動ランプがついたままになります。
ループできずに困っています。
この点何かアドバイス頂けませんでしょうか?
ちなみに標準出力をファイルに書き出したところ、aiot-alarm-poweroff: alarm_timer +180 second
という内容は出力されています。
よろしくおねがいします。
コメント
yuji_aoki
大塩様 ご回答ありがとうございます。
crontab ではなく systemd で自動実行を実装した場合は動作しました、ありがとうございます。
また、別途
https://armadillo.atmark-techno.com/forum/armadillo/8912
こちらを参考に、sleepによるループも実施してみたところ、
(1) そのまま処理を継続する
では約300回後のsleep後に起動しておらず、SW1を押すことで起動し、その後動作を続けました。
コンソールに特に異常は見られませんでした。
(2) systemd の機能を使用する
という方法も紹介されていました。
この2つについては(1)は不安定で(2) がオススメ等ありますでしょうか?
よろしくおねがいします。
at_syunya.ohshio
大塩です。
> (1) そのまま処理を継続する
> では約300回後のsleep後に起動しておらず、SW1を押すことで起動し、その後動作を続けました。
> コンソールに特に異常は見られませんでした。
上記につきまして、300秒後 に起床することがなかったという理解で宜しいでしょうか。
その場合、aiot-set-wake-trigger rtc enabled +300 を手動で動作させた場合の aiot-sleep では起床するでしょうか。
> (2) systemd の機能を使用する
> という方法も紹介されていました。
こちらは、まず参考にされたフォーラムに記載されている方法で想定した動作はするでしょうか。
動作しているのであれば、起床トリガーを任意の方法に変更すれば良いと思います。
以上です。
at_syunya.ohshio
2023年12月26日 15時37分
大塩です。
> root@armadillo:~# sh work.sh
> と実行した場合は、work.pyとaiot-alarm-poweroff +180 が実行され、180秒後にA6が起動するのですが、
> 起動後はwork.pyは実行されるのですが、aiot-alarm-poweroff によるpowerpff がなぜか行われず、緑の起動ランプがついたままになります。
上記現象につきまして、crontab ではなく systemd で自動実行を実装した場合は動作するでしょうか。
systemd の詳細につきましては以下をご確認ください。
https://armadillo.atmark-techno.com/blog/6938/2865
以上です。