> What are the intended contents of SMF_METHOD in the method execution > environment? The documentation just says: > > SMF_METHOD The full method name of the method that is > invoked > > and later also describes property expansion: > > %m Name of the method, such as start or stop > > This seems to imply that SMF_METHOD should contain "start" or similar. > But in fact at usr/src/cmd/svc/startd/method.c:exec_method(), we have: > > setlog(inst->ri_logstem); > log_instance(inst, B_FALSE, "Executing %s method (\"%s\")", > method_names[type], method); > ... > nenv = set_smf_env(mcp->env, mcp->env_sz, NULL, inst, method); > > So that when a method is invoked, SMF_METHOD actually contains > /lib/svc/method/foo (or whatever command we are invoking). > > It's hard to know which is intended because nothing I can find > actually uses this variable (of course, if its purpose is to replicate > $0, that's understandable).
My ten cents: I noticed the same thing, I think it's completely busted, and I think we should just change it. I can think of no reason why the script pathname is useful, and I think the docs imply it should have been start/stop/refresh. -Mike -- Mike Shapiro, Solaris Kernel Development. blogs.sun.com/mws/