My directory holding all of my service directories is /service. I expect to find supervise directories under all of my /service/* and /service/*/log directories (and their equivalent "real" locations); but I am finding them in other places as well. What have I done wrong ? How can I correct it ?
This is the Frequently Given Answer to that question.
You've erroneously, at some point, invoked svscan on the wrong directory. Most probably, you ran it from your interactive shell giving it no command line arguments, and didn't happen to be in your /service directory at the time. Alternatively, you might not have installated daemontools correctly, by omitting the command line argument to svscan in your startup script or inittab entry.
You need to rectify this situation in three stages, which you must perform in the correct order:
You must find and kill the spurious extra svscan process that you started, if it is still running. If you don't do this first, it will thwart your later efforts.
You must cause the supervise processes that svscan started to bring their services into the down state and then exit, by running:
cd $APEX_OF_THE_RELEVANT_DIRECTORY_TREE
svc -dx *
sleep 10
svc -dx */log
If you don't do this before removing the spurious supervise directories, you'll end up with supervise processes that you have no means for controlling.
You must remove the spurious supervise directories and their content.