Tips記事
» 2002年12月19日 15時46分 UPDATE

サスペンド復帰後にフリーズしてしまう

[木田佳克,ITmedia]

 電源管理が可能なAPMを制御するデーモン「apmd」が動作している場合、サスペンド(またはハイバーネーション)とリジューム(サスペンドまたはハイバネーションの復帰)時に、Xの表示が乱れたりマウスやネットワーク、サウンドがうまく復帰できないことがある。

 この症状は、サスペンド時に実行されるスクリプト「/etc/sysconfig/apm-scripts/apmscript」内のロック処理に失敗していることが考えられる。

 このスクリプト内では「/etc/sysconfig/apm-scripts/apmcontinue」が実行されるよう指定されているものの、OSインストール直後の状態では存在しない。このファイルは、ユーザー独自による処理を記述しておけるものだ。

■APM関連の制御ファイル

フ ァ イ ル
内  容
/etc/sysconfig/apmd 主要設定ファイル
/etc/sysconfig/apm-scripts/apmscript APM動作時に実行されるスクリプト
/etc/sysconfig/apm-scripts/apmcontinue ユーザ定義スクリプト

 ここで問題視する表示の乱れやネットワーク、サウンド(ALSA)などの動作に対処させる場合、まず最初に次のようなファイルを用意しよう。ポイントは、「suspend)」「resume)」それぞれでデーモンをどのように制御するかを定義している点だ。ほかにも制御したいデーモンがあれば「/etc/rc.d/init.d/alsasound ....」行の下に追加すればよい。

# vi /etc/sysconfig/apm-scripts/apmcontinue

#!/bin/bash
PROG=$1
case "$PROG" in
suspend)
/etc/rc.d/init.d/network stop
/etc/rc.d/init.d/alsasound stop
;;
resume)
/etc/rc.d/init.d/network start
/etc/rc.d/init.d/alsasound start
;;
esac

-----------

# chmod 750 /etc/sysconfig/apm-scripts/apmcontinue

 続けてXの表示乱れに対処するために、仮想コンソールをレジューム復帰時に「7」へ切り替えるよう設定する。

# vi /etc/sysconfig/apmd

#CHANGEVT="7"
   ↓
CHANGEVT="7"

 次に、Xが起動されていない場合にはレジューム時にchvt 7 が実行されないようにするため、次の行を修正する。

# vi /etc/sysconfig/apm-scripts/apmscript

[ "$CHANGEVT" != "0" ] && chvt "$CHANGEVT"
   ↓
[ "$(pidofproc X)" != "" ] && [ "$CHANGEVT" != "0" ] && chvt "$CHANGEVT"

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ