Created attachment 183740 [details]
patch for service.sh
If rcvar is not defined in a rc.d script, service(8) still tries to call checkyesno() passing an empty string as a variable name only to see this unmeaningful error message in /var/log/messages: "$ is not set properly - see rc.conf(5)."
Also, name and rcvar should be initialized in case they are not defined in the rc.d script, otherwise the previous values may be used for it.
"service -e" is a good way to reproduce this because it will make the command read all rc.d scripts found in your system. Note that the message is not output to stderr but to syslog, so check out /var/log/message for it.