LSB Resource Agents are those found in /etc/init.d. Generally they are provided by the OS/distribution and in order to be used with version 2 of Heartbeat, must conform to the LSB Spec.
The LSB Spec (as it relates to init scripts) can be found at: http://refspecs.linux-foundation.org/LSB_3.2.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html
Many distributions claim LSB compliance but ship with broken init scripts. The most common problems are:
NOTE: Parameters and options can not be passed to LSB Resource Agents.
Assuming some_service is configured correctly and currently not active, the following sequence will help you determine if it is LSB compatible:
/etc/init.d/some_service start ; echo "result: $?"
Did the command print result: 0 (in addition to the regular output)?
/etc/init.d/some_service status ; echo "result: $?"
Did the command print result: 0 (in addition to the regular output)?
/etc/init.d/some_service start ; echo "result: $?"
Did the command print result: 0 (in addition to the regular output)?
/etc/init.d/some_service stop ; echo "result: $?"
Did the command print result: 0 (in addition to the regular output)?
/etc/init.d/some_service status ; echo "result: $?"
Did the script indicate the service was not running?
Did the command print result: 3 (in addition to the regular output)?
/etc/init.d/some_service stop ; echo "result: $?"
Did the command print result: 0 (in addition to the regular output)?
This step is not readily testable and relies on manual inspection of the script.
The script can optionally use one of the other codes listed in the LSB spec to indicate that it is active but failed. In such a case, this tells Heartbeat that before moving the resource to another node, it should stop it on the existing one first. Making use of these extra exit codes is encouraged.
If the answer to any of the above questions is no, then the init script is not LSB compliant.
If you are using version 2 of Heartbeat and have specified crm yes, then your options at this point are to:
write an OCFResourceAgent based on the existing init script
If you are using version 1 of Heartbeat or have not specified crm yes, then the script may still work as long as it follows the rules for HeartbeatResourceAgents.