title: The 66 Suite: 66
author: Eric Vidal <eric@obarun.org>

[66](index.html)

[Software](https://web.obarun.org/software)

[obarun.org](https://web.obarun.org)

# 66

Program to control the state of the system and service manager.

## Interface

```
66 [ -h ] [ -z ] [ -v verbosity ] [ -l live ] [ -T timeout ] [ -t tree ] start|stop|reload|restart|free|reconfigure|enable|disable|configure|status|resolve|state|remove|signal|snapshot|tree|parse|scandir|boot|poweroff|reboot|halt|version [<command options> or subcommand <subcommand options>] service...|tree
```

Invocation of `66` can be made as `root` or `regular account`.

## Options

These options are available all commands except the `-t` options. In such cases, the help of the specific command provides clarification.

- **-h**: prints this help.

- **-z**: use color.

- **-v** *verbosity*: increases/decreases the verbosity of the command.
    * *0*: only print error messages.
    * *1*: also, print informative messages. This is the default.
    * *2*: also, print warning messages.
    * *3*: also, print tracing messages.
    * *4*: also, print function name and line code of the messages.
    * *5*: also, display the sequence of the current process function by function.

- **-l** *live*: changes the supervision directory of *service* to *live*. By default this will be `%%livedir%%`. The default can also be changed at compile time by passing the `--livedir=` option to `./configure`. An existing absolute path is expected and should be within a writable and executable filesystem - likely a RAM filesystem—see [scandir](66-scandir.html) command.

- **-T** *timeout*: specifies a general timeout (in milliseconds) passed to command. By default the timeout is set to 0 (infinite).

- **-t** *tree*: set *tree* as tree to use.

## Commands

### User command

- [start](66-start.html): bring up services.
- [stop](66-stop.html): bring down services.
- [enable](66-enable.html): activate services for the next boot.
- [disable](66-disable.html): deactivate services for the next boot.
- [reload](66-reload.html): send a SIGHUP signal to services.
- [restart](66-restart.html): bring down then bring up services.
- [status](66-status.html): display service information.
- [configure](66-configure.html): manage service environment variables.
- [reconfigure](66-reconfigure.html): bring down, unsupervise, parse it again and bring up service.
- [remove](66-remove.html): remove service and cleanup all files belong to it within the system.
- [free](66-free.html): bring down services and remove it from scandir.
- [tree](66-tree.html): manage or see information of trees.
- [poweroff](66-poweroff.html): poweroff the system.
- [reboot](66-reboot.html): reboot the system.
- [halt](66-halt.html): halt the system.
- [version](66-66-version.html): display 66 version.

### Admin command

- [boot](66-boot.html): boot the system.
- [scandir](66-scandir.html): manage scandir.
- [signal](66-signal.html): send a signal to services.
- [wall](66-wall.html): send message to connected users.
- [snapshot](66-snapshot.html): manage snapshot.

### Debug command

- [parse](66-parse.html): parse the service frontend file.
- [resolve](66-resolve.html): display the service's resolve file contents.
- [state](66-state.html): display service's state file contents.

## Exit codes

- *0* success
- *100* wrong usage
- *111* system call failed

Furthermore, all commands receive the same exit code.

## Instanced service

An [instanced *service*](66-instantiated-service.md) name from a service template can be passed as service argument where the name of the *service* must end with a `@` (commercial at).—see [frontend service file](66-frontend.html).

**(!)** The name of the template must be declared first immediately followed by the instance name.

For example, to enable a intanced service, you can do:

```
66 enable foo@foobar
```

## Handling dependencies

Any dependency or required-by dependency of a service or a tree chain will be automatically resolved. Manually defining chains of interdependencies is unnecessary.

For instance, during the `stop` command, if the `FooA` service has a declared required-by dependency on `FooB`, `FooB` will be considered and automatically stopped first when `FooA` is stopped. This process will run recursively until all required-by dependencies are stopped. This is also valuable for the opposite process, meaning start.

This applies to all `66` commands when it's necessary.
