# runit – Manage runit services

- Synopsis

- Parameters

- Examples

- Status

## Synopsis

- Controls runit services on remote hosts using the sv utility.

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---

enabled
boolean

Choices:
- no
- yes

Whether the service is enabled or not, if disabled it also implies stopped.

name string / required |  | Name of the service to manage.
service_dir string | Default: "/var/service" | directory runsv watches for services
service_src string | Default: "/etc/sv" | directory where services are defined, the source of symlinks to service_dir.

state
string

Choices:
- killed
- once
- reloaded
- restarted
- started
- stopped

`started`/`stopped` are idempotent actions that will not run commands unless necessary. `restarted` will always bounce the service (sv restart) and `killed` will always bounce the service (sv force-stop). `reloaded` will send a HUP (sv reload). `once` will run a normally downed sv once (sv once), not really an idempotent operation.

## Examples

    - name: Start sv dnscache, if not running
      runit:
        name: dnscache
        state: started

    - name: Stop sv dnscache, if running
      runit:
        name: dnscache
        state: stopped

    - name: Kill sv dnscache, in all cases
      runit:
        name: dnscache
        state: killed

    - name: Restart sv dnscache, in all cases
      runit:
        name: dnscache
        state: restarted

    - name: Reload sv dnscache, in all cases
      runit:
        name: dnscache
        state: reloaded

    - name: Use alternative sv directory location
      runit:
        name: dnscache
        state: reloaded
        service_dir: /run/service

## Status

- This module is guaranteed to have backward compatible interface changes going forward. [stableinterface]

- This module is maintained by the Ansible Community. [community]

### Authors

- James Sumners (@jsumners)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.