Like cvs, servicectl really encapsulates several different functions. If a list of services is specified, only those services are affected; otherwise the command operates on all the services defined for your current role, which is specified in $PLAYPEN_ROOT/etc/role. This may be overridden by PLAYPEN_ROLE in the environment.
The role's services are specified as a shell variable, playpen_services, in $PLAYPEN_ROOT/etc/roles/$ROLE/config.
Check the status of the services according to their pid files. Normally these are in LOCAL_RUNVAR, which is usually LOCAL_VAR/run named SERVICE.pid.
Check the status of the services, using their provided self-test scripts (or you can place such a script in your project, in the services/$SERVICE_NAME directory).
Restart the specified services, using SIGHUP if they take it, or their own restart script, or by stopping and starting the service.
After restarting:
the newest binaries will be in use,
the log files will be reopened,
the configuration files will be reread and the service's caches will be flushed.
Find out what environment variables are still left to be configured in the project for each service.
You can use the --verbose flag to print out descriptions of missing environment variables.
You can use the --script flag to make a script that will set the missing environments to their default values.