<!-- Mail as an attachment to: monthly@freebsd.org -->
<project cat='misc'>
  <title>relaunchd</title>

  <contact>
    <person>
      <name>
        <given>Mark</given>
        <common>Heily</common>
      </name>
      <email>mark@heily.com</email>
    </person>
  </contact>

  <links>
    <url href="https://github.com/mheily/relaunchd">Development tree on GitHub</url>
  </links>

  <body>
    <p>
      The relaunchd project provides a service management daemon that is similar to the original <a href="https://en.wikipedia.org/wiki/Launchd">launchd</a> introduced in Apple OS X. 
      <p>
      It is not limited to the original features of launchd, however; interesting work is being done to add support for launching programs in jails, passing socket descriptors from the host to a jail, and launching programs within a preconfigured Capsicum(4) sandbox. Additionally, relaunchd uses UCL for its configuration files, so jobs can be defined in JSON or other formats that UCL supports.
      <p>
      While there is still work to be done, most of the important features of the original launchd have been implemented, and relaunchd has been made available in the FreeBSD ports tree. It should still be considered experimental and not ready for production use, but everyone is welcome to try it, report issues, and contribute code or ideas for improvement.
    </p>
  </body>

  <help>
    <task>
      Add support for restarting jobs if they crash.
    </task>
    <task>
      Implement the cron(8) emulation feature.
    </task>
    <task>
      Add support for monitoring files and directories for changes, and launching jobs when changes are detected.
    </task>
    <task>
      Finishing things that are incomplete, such as support for  jails and passing open socket descriptors to child processes.
    </task>
    <task>
      Improving the documentation and providing more examples of how to use it.
    </task>
  </help>
</project>
