Internals of Wigwam Services

Wigwam provides a way of packaging services, which are daemons that must be started, stopped, and restarted.

From the user's perspective we install services like normal packages and use the servicectl script to affect and query the services.

From there, servicectl uses configuration files installed by the service-packages in ext/services/$SERVICE_NAME-$VERSION. It uses per-service configuration files; first trying to source one of the following scripts:

services/$SERVICE_NAME-$VERSION/config.pre
services/$SERVICE_NAME/config.pre
ext/services/$SERVICE_NAME-$VERSION/config.pre

Then it tries to source one of the following (the same filename without .pre):

services/$SERVICE_NAME-$VERSION/config
services/$SERVICE_NAME/config
ext/services/$SERVICE_NAME-$VERSION/config

Then, it tries the same with .post appended to each:

services/$SERVICE_NAME-$VERSION/config.post
services/$SERVICE_NAME/config.post
ext/services/$SERVICE_NAME-$VERSION/config.post

Only the files in ext are provided by the package; the rest are for customizing the service in the project.

Please see the Section called Making Packages that Provide Services in Chapter 6 for more information about what variables may be set and how they affect servicectl's behavior.