Systemd for Developers

Systemd not only brings improvements for administrators and users, it also brings a (small) number of new APIs with it. In this blog story (which might become the first of a series) I hope to shed some light on one of the most important new APIs in systemd:

Socket Activation – In the original blog story about systemd I tried to explain why socket activation is a wonderful technology to spawn services. Let’s reiterate the background here a bit.

The basic idea of socket activation is not new. The inetd superserver was a standard component of most Linux and Unix systems since time began: instead of spawning all local Internet services already at boot, the superserver would listen on behalf of the services and whenever a connection would come in an instance of the respective service would be spawned.

This allowed relatively weak machines with few resources to offer a big variety of services at the same time. However it quickly got a reputation for being somewhat slow: since daemons would be spawned for each incoming connection a lot of time was spent on forking and initialization of the services — once for each connection, instead of once for them all.

Spawning one instance per connection was how inetd was primarily used, even though inetd actually understood another mode: on the first incoming connection it would notice this via poll() (or select()) and spawn a single instance for all future connections. (This was controllable with the wait/nowait options.)

That way the first connection would be slow to set up, but subsequent ones would be as fast as with a standalone service. In this mode inetd would work in a true on-demand mode: a service would be made available lazily when it was required. Continue reading…

Related Posts

How to install Nanny on Mint 9 and Ubuntu 10.04 Nanny is a graphical parental control tool developed for Guadalinex, a Linux desktop distribution derived from Ubuntu and developed and maintained by ...
How to configure Ubuntu 14.04 server to forward root mails to your email address This short tutorial shows how to configure a Ubuntu 14.04 Cloud server to forward system-generated mails sent to the root account to your email addres...
How to dual-boot Windows 8 and Fedora 21 on a PC with UEFI firmware So Fedora 21 has been released, and my attempt to upgrade my main computer from Fedora 20 to Fedora 21 KDE failed. Since the cause is not something I ...
How to install Ajenti on Ubuntu 13.04 server Ajenti is a server administration panel for Linux distributions and FreeBSD. It is similar to cPanel, ISPConfig and others like them, but kinda light ...
Secure an Apache website with a Let’s Encrypt SSL certificate on Fedora Editor: This article was originally titled "LetsEncrypt now available in Fedora" and originally published on Fedora Magazine. For correctness, all ref...
Zap GPT data structures from a disk, while preserving existing MBR partitions Using GPT partitions, or a GPT partitioning scheme, takes care of the shortcomings of the MBR partitioning scheme. However, if you are not careful, i...

We Recommend These Vendors and Free Offers

ContainerizeThis 2016 is a free, 2-day conference for all things containers and big data. Featured, will be presentations and free, hands-on workshops. Learn more at ContainerizeThis.com

Launch an SSD VPS in Europe, USA, Asia & Australia on Vultr's KVM-based Cloud platform starting at $5:00/month (15 GB SSD, 768 MB of RAM).

Deploy an SSD Cloud server in 55 seconds on DigitalOcean. Built for developers and starting at $5:00/month (20 GB SSD, 512 MB of RAM).

Want to become an expert ethical hacker and penetration tester? Request your free video training course of Online Penetration Testing and Ethical Hacking

Whether you're new to Linux or are a Linux guru, you can learn a lot more about the Linux kernel by requesting your free ebook of Linux Kernel In A Nutshell.


Leave a Comment

Your email address will not be published. Required fields are marked *

*