StupidDog's blog

IT関連の手近な所で、疑問に思った事を調べた記録

「Ubuntu 12.10、起動時にChecking battery state...で停止する」の調査(1)

はじめに

ある時期から起動時に次のメッセージを出力して停止するようになってしまった。

追記 2013/12/18
何かが終了していないのではなく、ログイン画面を表示するligthdmが終了して、その後に起動するプログラムがない状態になっている事がログから分かった。
んで、調査継続中。

Chechking battery state...

検索した結果、同じ問題についての解決方法がいくつかありました。

しかし、原因も分からず「そうしてみたら動いた」ばかりだったので、障害が消えてしまう前に調査する事にしました。

「Checking battery state...」を出力しているのは何か?

障害の状態は、何かが停止しているがOSのハングアップではない。

ctrl + alt + F1

で仮想コンソールを起動後、CUIでログインし、シャットダウンも可能である。
なので「Checking battery state...」より後の何かが終了していないと考えた。

では「Checking battery state...」を出力しているプログラムは何か?

探した結果、このメッセージを出力していたのは、下記のスクリプトである。

$ grep -inrs "checking battery state" /etc/*
/etc/init.d/acpi-support:18:    log_begin_msg "Checking battery state..."

acpi*1サービスの起動スクリプトらしく、2から5までのランレベルで起動する設定になっていた。

$ sudo sysv-rc-conf --list | grep acpi-support
acpi-support 1:off 2:on 3:on 4:on 5:on

このスクリプトは「/etc/acpi/power.sh」を呼び出す。
「/etc/acpi/power.sh」は「/usr/share/acpi-support/policy-funcs」から関数を取り込み、何かをチェック後「pm-powersave」を実行している。

今回の調査結果

障害の状態は「acpiのサービスを起動の途中で終了しないプログラムがある」事が原因である。

今後は「/etc/acpi/power.sh」が何をするのかを調査する。

追記 2013/12/18
はじめにの追記の通り、lightdmが終了してしまう原因を調べる。

おまけ

GUIログインできないのは不便なので、今のところ不要なacpiのサービスを起動しないように設定し、障害を回避した。

$ sudo sysv-rc-conf acpi-support off
$ sudo sysv-rc-conf --list | grep acpi-support
acpi-support 1:off 2:off 3:off 4:off 5:off

サービスを起動する設定にすれば障害の状態に戻れるように、他の変更はしていない。

追記 2013/12/18
頻度は下がるが回避できず。

*1:Advanced Configuration and Power Interface