Bug 220227

Summary: service(8): Do not try to refer to rcvar when it is empty
Product: Base System Reporter: Akinori MUSHA <knu>
Component: binAssignee: freebsd-bugs (Nobody) <bugs>
Status: New ---    
Severity: Affects Some People    
Priority: ---    
Version: CURRENT   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
patch for service.sh none

Description Akinori MUSHA freebsd_committer freebsd_triage 2017-06-23 13:33:17 UTC
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.