#! /usr/bin/perl # # brightd - SONY VAIO で液晶輝度を一定にキープするデーモン # copyright (c) 2007/10/10 by HIRAMOTO Kouji use strict; my $WAIT = 1; # 輝度設定の間隔(秒) my $DAEMON_NAME = "brightd"; # デーモン名 my $PID_FILE = "/var/run/$DAEMON_NAME.pid"; # pidファイル # 輝度設定用システムファイル my $SYS_FILE = "/sys/class/backlight/sony/brightness"; # 親プロセスは終了 my $pid = fork; if ($pid) { exit 0; } # 子プロセスも終了 my $pid2 = fork; if ($pid2) { exit 0; } # ここから孫プロセス # ps で見えるプロセス名の決定 my $process_name = $0; $0 = $process_name; # pidファイルの作成 my $fh; open($fh, ">", $PID_FILE) or die "$!: $PID_FILE"; print $fh $$; close($fh) or die "$!: $SYS_FILE"; # メインループ while (1) { # 輝度を取得 open($fh, "<", $SYS_FILE) or die "$!: $SYS_FILE"; my $brightness; $brightness = <$fh>; close($fh) or die "$!: $SYS_FILE"; # 輝度を設定 open($fh, ">", $SYS_FILE) or die "$!: $SYS_FILE"; print $fh $brightness; close($fh) or die "$!: $SYS_FILE"; # しばらく待つ sleep $WAIT; }