絖綛 N@i.jp  昨日:00043441
 今日:00014652
 総計:00148809
keywords
管理者専用
  Post   Add link   Control Panel 































新しいトピック
最新:07/03 19:28


新しいコメント
最新:07/28 16:47






管理人へMAIL

プライバシーポリシー

QNAP TS-112でsmartdを動かす(2)

QNAP TS-112ブート時に smartdの起動スクリプトが呼び出されるようにします。


4. smartdの起動スクリプトがTS-112のブート時に呼び出されるようにする

 smartdの起動スクリプトを手動で動かして smartd が正常に起動できる事が確認できました。しかし、このままではTS-112を再起動、シャットダウンすれば smartd が動作していない状態に戻ってしまいます。その度毎に手動で起動させていたのでは面倒です。そこで、TS-112のブート時に smartd起動スクリプトが呼び出されるようにします。

 一般的なLinux/Unixの場合、/etc/init.d配下に起動スクリプトを置いてrunlevelに応じた /etc/rc?.d配下からシンボリックリンクを張るようにしたり、serviceコマンドで有効化したりするものなのですが、QNAP NASの場合はこれらとは異なる方法を採ります。と言うのも QNAP OS (QTS)の場合、/etc はRAM上に構築されているために /etc/init.d配下にスクリプトを置いても再起動すれば消えてしまうのでした。(/etc配下は、ブート時に NASのフラッシュメモリ等からコピーすることで構築されるようです。)
 そのため、QPKG(QTSの App Center)に登録することでブート時に起動スクリプトが呼び出されるようにする方法が使われています。

 具体的には "/etc/config/qpkg.conf" ファイルに smartmontools をアプリとして追加します。/etc/config だけはHDD上にあるので、この配下のファイルに加えた修正は再起動後でも消えることはありません。
 今回は "/etc/config/qpkg.conf" ファイルに、以下の記述を追加しました。

[Smartmontools]
Name = SMARTmonTools
Class = null
Status = complete
Version = 6.3
Author = Smartmontools
Date = 2014-08-11
Shell = /share/HDA_DATA/.qpkg/smartmontools/smartd.sh
Install_Path = /share/HDA_DATA/.qpkg/smartmontools
QPKG_File = smartmontools.qpkg
Enable = TRUE

 ポイントとなる設定項目は、NameとShellです。それ以外の項目は適当でも構わないようです。QTSはブート時に "/etc/config/qpkg.conf" を読み込み、

  1. Shell に記述されたスクリプトファイルへのシンボリックリンクを /etc/init.d 配下に作成する
  2. /etc/rcS.d 配下に Nameに記述された名前の前に QSnnnn(nnnnは何らかの整数値)を付加した名前で、Shellに記述されたスクリプトファイルへのシンボリックリンクを作成する

という事を行うことで /etc/init.d, /etc/rcS.dを構築し、これらの起動スクリプトが呼び出されるようにする仕組みのようです。そのため、Name項目には空白文字や特殊な記号文字を含まないようにしなければなりません。ワタシは、これで地味にハマりました。Name項目に"."(ドット)や空白文字を入れていたためブート時に呼び出されなかったのです。この原因が分からず数日悩みました。

 "/etc/config/qpkg.conf" ファイルに上記の記述を追加すると、App Centerにこのように表示されるようになります。ON/OFFのスイッチは、"/etc/config/qpkg.conf" ファイルの Enable項目に反映されるようです。そこで、先のsmartd起動スクリプトでは Enable項目を読み込んで、Enable項目が TRUE でなければ smartdを起動させないようにしてあります。それが以下の部分です。

#
# QPKG
#
GETCFG="/sbin/getcfg"
QPKG_NAME=smartmontools
QPKG_CONF="/etc/config/qpkg.conf"
〜略〜
start() {
    local ENABLED=$(${GETCFG} ${QPKG_NAME} Enable -u -d FALSE -f ${QPKG_CONF})

    if [ "$ENABLED" == "TRUE" ] ; then
〜略〜

 ここまで出来たら、TS-112を再起動させてみます。再起動後に psで確認して、先に手動で起動させた時と同じように smartdが正常起動していれば成功です。


< 過去の記事 [ 8月の 自宅サーバ リスト ] 新しい記事 >

2014 calendar
8月
12
3456789
10111213141516
17181920212223
24252627282930
31


掲示板
最新:08/15 17:19


GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.