/hosts/self/svc

Any host feature not directly provided by the kernel is a service (svc for short) and is configured and managed through its instance directory. Instance directories for services are contained in /hosts/self/svc/.

Services can be either network services or local services. Local services can be active (daemon-based) or passive (file-based), or a combination thereof.

Some examples of services:

/hosts/self/svc/auth/

A service that implements user authentication (passwd, group, sudoers, ...).

/hosts/self/svc/cron/

A service that runs the cron daemon.  [ More ... ]

/hosts/self/svc/getty/

A service that initializes tty lines.

/hosts/self/svc/httpd/

A service that runs an HTTP daemon.  [ More ... ]

/hosts/self/svc/inet/

A service that allows the computer to become a node on an IP network.

/hosts/self/svc/sshd/

A service that runs an SSH daemon.

/hosts/self/svc/X11/

The X Window System service.  [ More ... ]

/hosts/self/svc/service/

Instance directory for service.

A service instance directory contains the variable files related to the service, including configuration information, service data, daemon PID and log output. In addition to this, an instance directory contains a symbolic link, super, that points to the implementation of the service:

super  /org/publisher/shared/i386-pc-linux-gnu/service/

The implementation directory provides the executable commands (binaries or scripts) to start, restart, stop, report the service status, and otherwise manage the service. The implementation commands always operate on the principle that the current working directory is an instance of the service. It is the responsibility of the caller to arrange for this before invocation. Therefore, the implementation is not only allowed but expected to write on the current working directory.

Installing and uninstalling a service

Install a new service:

cd /host/self/svc
cp -an /org/publisher/proto/i386-pc-linux-gnu/service .

Start the service:

( cd service ; ./super/start )

Stop and remove the service:

( cd service ; ./super/stop )
rm -r service

Self-contained instances

Some special services need to be self-contained, i.e. contain a copy of the implementation within the instance proper. This arrangement may be necessary, for example, when the service needs to be available in single user mode, or when the service is critical to the integrity of the host. In these instances, super is a subdirectory, rather than a symbolic link, and the implementation files are copied into it.