add readme
This commit is contained in:
parent
7ad4e6a53f
commit
e19bcf7ff7
|
@ -0,0 +1,47 @@
|
|||
# systemd-ml
|
||||
|
||||
`systemd-ml` provides `libsystemd`-like functionality for interacting with the systemd service
|
||||
manager, in self-contained ocaml code (with a bit of C). `systemd-ml` is integrated with `eio`,
|
||||
which provides for use in `eio`-based daemons
|
||||
|
||||
Unfortunately, `systemd-ml` currently assumes usage of the `eio_linux` backend. It's hard to make
|
||||
code backend-agnostic because not enough functionality around Unix domain sockets is exposed by the
|
||||
high-level `eio` APIs, necessitating use of the low-level backend APIs. Therefore, it does not
|
||||
currently work on `eio_posix`, though future support is possible. Support for `eio_windows` is not
|
||||
planned, since there is no systemd port for windows.
|
||||
|
||||
Additionally, some functionality that would be useful for systemd integration is currently not
|
||||
possible without library patches. This currently includes functionality for responding to memory
|
||||
pressure events.
|
||||
|
||||
|
||||
- `systemd-ml` with entry module `Systemd` is the main library
|
||||
- `systemd-ml.xlog` with entry module `Systemd_xlog` configures `xlog` to send log messages to
|
||||
journald
|
||||
- `systemd-ml.main` with entry module `Systemd_main` provdes a convenience function
|
||||
`Systemd_main.run` which handles common boilerplate operations for `Type=notify` or
|
||||
`Type=notify-reload` daemons with `xlog` output to journald
|
||||
|
||||
Also note that per the license field in the package info, this package is not currently open source.
|
||||
If you have questions about this you should contact me
|
||||
|
||||
## Features
|
||||
|
||||
- detect
|
||||
[systemd](https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#%24SYSTEMD_EXEC_PID)
|
||||
and
|
||||
[journald](https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#%24JOURNAL_STREAM)
|
||||
presence
|
||||
- [rich journald output](https://systemd.io/JOURNAL_NATIVE_PROTOCOL/) using `xlog`
|
||||
- convenience functions to retrieve [directories passed by
|
||||
systemd](https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#%24RUNTIME_DIRECTORY)
|
||||
- [service notifications](https://www.freedesktop.org/software/systemd/man/latest/sd_notify.html),
|
||||
with wrapper functions for common notification types
|
||||
- [fdstore](https://systemd.io/FILE_DESCRIPTOR_STORE/) functionality, and [socket
|
||||
activation](https://www.freedesktop.org/software/systemd/man/latest/systemd.socket.html)
|
||||
- [watchdog](https://www.freedesktop.org/software/systemd/man/latest/sd_watchdog_enabled.html)
|
||||
notifications
|
||||
|
||||
features that would be nice to have but unfortunately require patches (eio does not currently
|
||||
support polling for POLLPRI)
|
||||
- [memory pressure](https://systemd.io/MEMORY_PRESSURE/)
|
Loading…
Reference in New Issue