2014年3月4日火曜日

輝度を維持できるinitスクリプト書きました。

ええ、書きました。


前にこれ書いたんですけど、機能的には期待通りなんですが、実行時に警告メッセージが出て精神的に良くなかったんです、私の環境では。あと/etc/init.d/rcに書くのもあまり良くないと思い。

そこで、/etc/init.d/下にスクリプトをおいてやればいいんじゃないかなぁと。結果としてはもう文句ありません。サイコー。LSBinitスクリプトを書くにあたって参考になったところを紹介しておきます。

基本的なinitスクリプトの書き方についてはこちら。

init.d スクリプトを書こう

LSBinitでのランレベル指定とか色々。

LSBInitScripts - Debian Wiki

LSBinitのメッセージ関係。

Re: How to use lsb init-functions

他には/etc/init.d/に入ってる他のスクリプトを参考にしたりしました。


/etc/init.d/brightness

#!/bin/sh
### BEGIN INIT INFO
# Provides:          brightness
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     1 2 3 4 5
# Default-Stop:      0 6
# Short-Description: Keeping brightness control
# Description: Saves and keeps display brightness
### END INIT INFO

. /lib/lsb/init-functions

CURRENT="/sys/class/backlight/acpi_video0/brightness"
RECORD="/usr/local/share/brightness"

case "$1" in
  start|restart)
    log_action_begin_msg "Resuming brightness"
    echo `cat $RECORD` > $CURRENT
    log_action_end_msg 0
  ;;
  stop)
    log_action_begin_msg "Saving brightness"
    cat $CURRENT > $RECORD
    log_action_end_msg 0
  ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
  ;;
esac

exit 0

あとはこれをinsservで登録してあげれば。

# insserv brightness


他のデーモンと遜色なく馴染んで動いてます。完璧。