2009/03/09

HS-DHGL v1.10 不要なプロセスを起動させないと予約録画が安定するかテスト

最近DbAcRapの応答がなくなりSchedulerが機能不全に陥ってしまうことが多くなった気がする。
/etc/init.d/pcastd.sh restartを実行せずとも復帰させる方法を探していたら、killall -KILL pcastdを実行するだけでShedulerは回復するみたい。
試しにpcastd他、家では必要のないプロセスを実行させないように/etc/init.d/まわりを変更してみた。

純正ファームのバージョンは1.10。
1.20はメリットがなさそうなので結局アップデートせず。

.backupフォルダに移動。

/etc/init.d/epg.sh (/usr/local/PCast/EPGd,/usr/local/PCast/iRCommander)
/etc/init.d/ltbootd.sh (/usr/local/BootServer/rarpd, /usr/local/BootServer/tftpd, /usr/local/BootServer/rarpcfgd,/usr/local/BootServer/fwupdated)
/etc/init.d/directcopy.sh (/etc/init.d/directcopy.sh)
/etc/init.d/httpd.sh ( /usr/local/apache/bin/apachectl)

この辺も不要な気はするが保留。

/etc/init.d/daemonwatch.sh ( /usr/local/sbin/daemonwatch )
/etc/init.d/lsprcvd.sh (/usr/local/sbin/lsprcvd)
/etc/init.d/clientUtil_servd.sh

死んでしまったdaemonを無理やり復旧させるリストも修正しておく。

/etc/daemonwatch.lst

/var/run/smbd.pid /etc/init.d/smb.sh restart
/var/run/clientUtil_server-eth0.pid /etc/init.d/clientUtil_servd.sh restart

pcastd.shを見直す。
普段使い(予約録画とDbAcRapを叩いて予約リストを操作する)には不要なプロセスはすべて削除。

/etc/init.d/pcastd.sh

start()
{
if [ "${server}" = "on" ] ; then
echo "Start services: pcastd scheduler"
/etc/init.d/module_loader.sh start
/usr/local/PCast/Scheduler &
logger -t ${tag} -p ${facility} 'Started pcastd scheduler'
else
logger -t ${tag} -p ${facility} 'Not started pcastd'
fi
}
stop()
{
echo "Stop services: pcastd scheduler"
killall -KILL Scheduler
/etc/init.d/module_loader.sh stop
logger -t ${tag} -p ${facility} 'Stopped pcastd scheduler'

}

時刻調整はcronで管理してるっぽいので大丈夫だろう、多分。

で、起動させているプロセス。

PID Uid VmSize Stat Command
1 root 564 S init
2 root SWN [ksoftirqd/0]
3 root SW< [events/0]
4 root SW< [khelper]
5 root SW< [kthread]
11 root SW< [kblockd/0]
14 root SW< [khubd]
29 root SW [crypto]
30 root SW [crypto_ret]
51 root SW [pdflush]
52 root SW [pdflush]
54 root SW< [aio/0]
53 root SW [kswapd0]
55 root SW< [xfslogd/0]
56 root SW< [xfsdatad/0]
180 root SW< [scsi_eh_0]
181 root SW< [scsi_eh_1]
195 root SW [mtdblockd]
323 root SW< [xfsbufd]
324 root SW< [xfssyncd]
559 root SW [kjournald]
624 root 644 S syslogd -m 0
626 root 380 S klogd
630 root 684 S /usr/sbin/inetd
633 root 956 S /bin/sh /usr/local/sbin/kernelmon
639 root 412 S /usr/local/sbin/miconmon
663 root SW< [xfsbufd]
672 root SW< [xfssyncd]
684 root 508 S cat /proc/buffalo/kernevnt
694 root 416 S /usr/local/sbin/diskmon
697 root 372 S /usr/local/sbin/errormon
720 root 392 R /usr/sbin/telnetd
758 root 460 S lpd Waiting
765 root 2140 S /usr/local/sbin/smbd -D
767 root 1408 S /usr/local/sbin/nmbd -D
771 root 1788 S /usr/local/sbin/smbd -D
773 nobody 2568 S /usr/local/sbin/smbd -D
870 root 264 S /usr/local/sbin/clientUtil_server -i eth0
872 root 808 S /usr/local/sbin/lsprcvd
876 root 324 S /usr/local/sbin/daemonwatch -a /etc/daemonwatch.list
879 root 664 S /usr/sbin/crond
883 root 316 S /usr/local/sbin/logchkd
897 root 620 S /sbin/getty -L ttyS0 115200 vt100
6359 nobody 3388 S /usr/local/sbin/smbd -D
6424 root 1288 S -sh
7902 root 6768 R /usr/local/PCast/Scheduler
7931 root 1544 S /usr/local/PCast/Scheduler
31555 root 716 R ps

生き残った精鋭?たち。
これで安定してくれると嬉しいのだがなぁ…

おまけ

add.sh :予約録画テスト用スクリプト

2分後に2分間録画する予約を追加。

#!/bin/bash
NOW=`date +%m%d%H%M%Y`
MDH=$( date -d $NOW +%m%d%H )
Y=$( date -d $NOW +%Y )
M=$( expr `date -d $NOW +%M` + 2 )
if [ `length $M` -eq 1 ]; then M='0'$M;fi
MM=$( expr $M + 2 )
if [ `length $MM` -eq 1 ]; then MM='0'$MM;fi

Start=$( date -d $MDH$M$Y +%Y/%m/%d/%H/%M )
End=$( date -d $MDH$MM$Y +%Y/%m/%d/%H/%M )

ResType=0
Formet=4
TvChannel=4
TvAudioMode=2
Reserve1=0
Reserve2=0
Reserve3=0
DeviceId=2
TittleName=`date -d $MDH$M$Y +'%y/%m/%d_%H:%M'`-`date -d $MDH$MM$Y '+%y/%m/%d_%H:%M'`_$TvChannel

/usr/local/PCast/DbAcRap 'add{'$ResType'}{'$Formet'}{'$Start'}{'$End'}{'$TvChannel'}{'$TvAudioMode'}{'$Reserve1'}{'$Reserve2'}{'$Reserve3'}{'$DeviceId'}{'"$TittleName"'}'

チャンネルとか録画デバイスとかは決め打ち(汗)

それにしてもDHGLのdateコマンドは強力。
例えば10:68とか2009/13/36とかきちんと処理してくれる。
テレビ番組自体が日付が変わっても28:24とか表記するからその対応のためなんだろうけど、ゲテモノ食い万歳(笑)

世間では地デジと言われているけど、どこでも見れるデータとするならアナログが一番楽なんだよなぁ。
ビーカスはなくなれと流れ星にお願いしてみよう(爆)

0 件のコメント: