LinkStation (LS-QVL) が時々ハングるので,中身を調べてみた

[`evernote` not found]
Bookmark this on Hatena Bookmark
Share on Facebook
LINEで送る

proxy配下に置いたLinkStationが,週に1回くらいハングってくれるので,ちょっといじってみたよ.
結果はどうなることやら.

sshで入れるようにする

LinkStation に ssh で root ログインできるようにする - maruko2 Note.
を参照した.
一般ユーザでログインできるようにしようとしたら,色々と抑止策が施されていて,リブートするごとに設定が巻き戻ったり(正確にはsshd再起動で巻き戻る)するので,rootでパスワードログインすることで良いことにした.
気になる人は公開鍵認証にしてはどうか.試してないけど.
あと,コマンドライン履歴にパスワードが残る運用は私の中ではあり得ないので,ファイルに書き出したのをコマンド内で呼んでいる.
あと,gつけるのは怖いので,私はsedにgはあんまつけない.ちゃんと動きそうか,catとかで確認すること.

  1. パスワード設定
    $ IP="192.168.1.X"
    $ Admin_PW=$(cat admin_passwd)
    $ ROOT_PW=$(cat root_passwd)
    $ java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "(echo $ROOT_PW ; echo $ROOT_PW) | passwd"
    $ java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "cat /etc/sshd_config"
    $ java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "sed -i 's/UsePAM yes/UsePAM no/' /etc/sshd_config"
    $ java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "sed -i 's/PermitRootLogin no/PermitRootLogin yes/' /etc/sshd_config"
    $ java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "/etc/init.d/sshd.sh restart"
  2. ログイン
    $ ssh root@$IP

ログを探す1

どうも,/var/log/syslogがないなーと思ったら,/var/log/messagesに色々と書いてあった.
前回暴走直前の挙動を調べると,majishanzuかmDNSResponder辺りが怪しい.

  1. とりあえず,majishanzu を/etcで探しても見付からないので,頑張って探す.
    # which majishanzu
    /usr/local/sbin/majishanzu
    # grep majishanzu /usr/local/sbin/majishanzu
    /etc/melco/majishanzu
    majishanzu_state
    /var/lock/majishanzu_update
    /etc/melco/majishanzu/
    /tmp/majishanzu_dl
    %s/majishanzu_info
    /etc/melco/majishanzu/majishanzu_state
    majishanzu success
    majishanzu
    majishanzu start
    

    しかし,/etc/melco/majishanzu には情報はないのであった.

  2. 続いて,ログの直前にtwonkyのログが出ていたので,twonkyから呼び出されているのでは?と推測.
    検索したら出てきた.
    Linkstation Duo LS-WXL - how to access media server confguration page (port 9050)
    /usr/local/twonky-alt/ へ

    # cd /usr/local/twonky-alt/
    # grep majishanzu *
    twonky.sh:MS_DL_LOCK_FILE=/var/lock/majishanzu_update
    twonky.sh:MAJISHANZU_DIR=/etc/melco/majishanzu
    (略)
    

    grepをかけると,twonky.shで呼び出されているので,中を読む.
    /usr/local/sbin/majishanzu のある時,do_majishanzuが呼ばれているようなので,元ファイルをリネームして退避すれば,もう二度と呼ばれないはず.

    # mv /usr/local/sbin/majishanzu /usr/local/sbin/majishanzu.bak
  3. ちなみに,絶対どこかから呼び出されて動作しているはず,と思ってcrontab -lで出てくるスクリプトが置いてある/etc/cron/cron,d内をgrepしてみると,ms_checkversion.shの中にtwonky.shが書かれている.
    こいつは30分に1回呼ばれていた.

ログを探す2

mDNSResponderも止めておこうと調べてみると,bonjour関係のプロセスだった.
そういえばiTunesを使ってた時にwindowsでも見たことある.

面倒臭いので結論から言うと,こいつはcronではなく/etc/init.d/bonjour.shから呼ばれていて,/etc/melco/infoの中を見るとbonjour=onの設定が書かれており,bonjour.shの中でこいつがonなら…という行がstart()にあるので,/etc/melco/infoを書き換えてbonjour=offとしてみた.