LSBリソースエージェントは、/etc/init.dに用意されているものです。一般的には、OS/ディストリビューションによって提供され、Heartbeatのバージョン2と併せて使用するには、LSB仕様に合致していなければなりません。
LSB 仕様(initスクリプト関連)については、以下をご参照ください。http://www.linuxbase.org/spec/refspecs/LSB_3.0.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html
多くのディストリビューションがLSB準拠を唱えていますが、ブロークンなinitスクリプトを使っています。よくある問題には以下のものが挙げられます。
注記: パラメータとオプションは、LSBリソースエージェントに渡すことはできません。
some_serviceが正しく設定がされていて、現時点ではアクティブになっていないと仮定します。以下のシーケンスは、LSBと互換性があるかどうかの判断に役立ちます。
/etc/init.d/some_service start ; echo "result: $?"
コマンドは(標準出力以外に)、result: 0をプリントしましたか?
/etc/init.d/some_service status ; echo "result: $?"
コマンドは(標準出力以外に)、result: 0をプリントしましたか?
/etc/init.d/some_service start ; echo "result: $?"
コマンドは(標準出力以外に)、result: 0をプリントしましたか?
/etc/init.d/some_service stop ; echo "result: $?"
コマンドは(標準出力以外に)、result: 0をプリントしましたか?
/etc/init.d/some_service status ; echo "result: $?"
スクリプトはサービスが実行中ではないことを示しましたか?
コマンドは(標準出力以外に)、result: 3をプリントしましたか?
/etc/init.d/some_service stop ; echo "result: $?"
コマンドは(標準出力以外に)、result: 0をプリントしましたか?
このステップは簡単にテストできるものではなく、手作業によるスクリプトの点検を行わなければなりません。
スクリプトにはオプションで、アクティブにはなっていながら失敗したことを示すために、LSB仕様に掲げられている、その他のコードを1つ使うことができます。その場合、Heartbeatには、リソースを別のノードに移す前に、まず既存のノードでストップすべきであることを告げます。こうした追加の終了コードを利用することをお勧めします。
上記の質問のいずれかに対する答えが「いいえ」である場合、そのinitスクリプトはLSBには従っていません。
Heartbeat のバージョン2をお使いで、crm yesを指定している場合、この時点での選択肢は以下のとおりです。
既存のinitスクリプトに基づいて、OCFリソースエージェント を書く
Heartbeat のバージョン 1をお使いで、crm yesを指定していない場合には、Heartbeatリソースエージェントに関するルールに従っている限り、当該スクリプトは機能する可能性があります。