We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Uplift your Linux systems programming skills with systemd and D-Bus

Formal Metadata

Title
Uplift your Linux systems programming skills with systemd and D-Bus
Subtitle
Practical examples and best practices on how to leverage systemd and D-Bus in Go
Title of Series
Number of Parts
490
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Systemd is a de-facto standard process manager in all mainstream Linux distributions for almost a decade. D-Bus is most widely used inter-process communication on a local host. It's used in many core apps on Linux Desktop. Yet both systemd and D-Bus are undervalued. Very often, programs that are only intended to run on Linux attempt to re-implement (with bugs) what systemd and D-Bus already provide (for example: watchdog function, reliable process termination, notifying another program about some event, coordination between multiple processes). The goal of this talk is to shift perspective on systemd and D-Bus (using concrete practical examples in Go), and show how basic building block these systems provide can be re-used in software you write for modern Linux system. This is an exploratory talk. Then intent is to look at systemd and D-Bus from a different angle. Most of current tutorials about systemd focused on operating a service like apache, nginx or redis. D-Bus tutorials are very abstract, basic and lack any concrete useful use-cases. I plan to present few recent additions to systemd, such as portable services and resource control. As well as re-introduce few existing concepts, like sd-notify, watchdogs and transient units. On D-Bus I plan to show how to use bus abstraction and few neat features, like passing file descriptors and receiving notifications. The focus is on how to not re-invent things that systemd and D-Bus do much better. Examples are given as a few simple Golang programs, with full source available on github. The indented audience is anyone who write and operate Go code on Linux. Preferred experience of the audience: basic knowledge of Linux and Golang, familiarity with systemd and D-Bus concepts would be useful as well.