workshop: Writing services the systemd way
Harnessing systemd's high-level functionality to make services simpler
Historically, services have handled forking, privilege dropping, logging, monitoring, and sandboxing either on their own, using a language-specific framework, or binaries like daemontools. With systemd, this is no longer necessary. In this workshop, we'll create a service from scratch that has systemd handle everything except the core functionality.
In this workshop, we will build a basic application (framework/language to be determined) that uses:
- Socket activation
- The journal
- Type=notify for state tracking
- Watchdog for availability monitoring
- Advanced unit configuration for sandboxing/isolation
We will primarily be using C and autotools, but the concepts are the same for most languages. Don't worry if you're not fluent in C or autotools; we'll start from scratch.