Systemd is now adopted by several distributions, but some of the most interesting features ( socket activation, watchdog support, journal integration ) requires code change to daemons. This talk will cover the different way and API to integrate systemd and a regular daemon, along with the various pitfall I stumbled upon ( so you don't have to ), like "what version of systemd support what feature", "how do we make the support optional" and the various tradeoff you have to keep in mind.