systemd - system and service manager
- systemd - system and service manager
systemd is a system and service manager for Linux. systemd is compatible with SysV and LSB init scripts. It can work as a drop-in replacement for sysvinit. Systemd
- Provides aggressive parallelization capabilities
- Uses socket and D-Bus activation for starting services
- Offers on-demand starting of daemons
- Implements transactional dependency-based service control logic
- Tracks processes using Linux cgroups
- Supports snapshotting and restoring
- Maintains mount and automount points
Please see the upstream page for more information.
Installing and Testing
systemd was included in Debian wheezy as a technology preview. Please make sure that you are using Debian testing or newer to get a recent version of systemd.
To install systemd run:
# apt-get update # apt-get install systemd
This will install the systemd packages but will not configure systemd as your init system.
In order to use systemd you should also install systemd-sysv which provides the symlinks links for /sbin/init.
# apt-get install systemd-sysv
In order to boot your system with the newly installed systemd, simply reboot.
If you run a self-compiled kernel, make sure you have 2.6.39 or newer and enable the following options:
* CONFIG_DEVTMPFS=y * CONFIG_CGROUPS=y * CONFIG_AUTOFS4_FS=[y|m] * CONFIG_IPV6=[y|m], optional, but highly recommended * CONFIG_FANOTIFY=y, optional, required for systemd readahead. available in Linux kernel >= 2.6.37.
For an up-to-date list, see section "REQUIREMENTS" in the upstream README file.
Sometimes it is necessary to investigate why systemd hangs on startup or on reboot/shutdown.
Solution #0: Remove "quiet" from Kernel command line (so called "cmdline" or "grub line")
Solution #1: Increase verbosity via cmdline: Add "systemd.log_target=kmsg systemd.log_level=debug"
Of course you can have a "temporary" persistent solution:
[ /etc/default/grub ] GRUB_CMDLINE_LINUX="systemd.log_target=kmsg systemd.log_level=debug" <--- Add here (by uncommenting you can easily switch to debug) # update-grub
In addition enhance cmdline with "systemd.sysv_console=1" (0: disabled, 1: enabled).
Solution #2: Increase verbosity via /etc/systemd/system.conf
LogLevel=debug <--- Uncomment this line and use "debug" (default: commented and "info") LogTarget=syslog-or-kmsg <--- Uncomment this line (default: commented) SysVConsole=yes <--- Uncomment this line (default: commented)
HINT: "man system" and "man systemd.conf" (Note: File is system.conf vs. man-page system*d*.conf)
HINT: How to check Kernel command line parameters/options?
# cat /proc/cmdline
NOTE on LogLevel (see systemd(1) and systemd.conf(5)):
"Set log level. As argument this accepts a numerical log level or the well-known syslog(3) symbolic names (lowercase): emerg, alert, crit, err, warning, notice, info, debug."
HINT: Keep a copy of /sbin/init from sysvinit package in case of rescue (so you can use init=/sbin/init.sysvinit in cmdline)!
# cp -av /sbin/init /sbin/init.sysvinit <--- Before installing systemd-sysv package
Bugs and Bug-Tracking-Systems
- For known bugs please see topic "Known Issues and Workarounds"
Known Issues and Workarounds
sysvinit vs. systemd-sysv
Upgrade to sysvinit ≥ 2.88dsf-44.
Encrypted swap blocks boot
See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=712439#70 for a patch.
According to the bug, the patch is no longer required as long as you upgrade to dmsetup 2:1.02.83-1.
Booting with lvm (especially with separate /usr) fails
Upgrade to lvm2 ≥ 2.02.104-1
Where to get help?
Systemd is a young project with a strong emphasis on solving problems in a distribution agnostic manner.
mailing-list @ http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Debian specific channels include
Several other distributions are using systemd
Talk about current state of systemd in Debian and plans for Jessie at FOSDEM 2013 by Tollef Fog Heen and Michael Biebl <email@example.com>
Slides from the FOSDEM 2013 talk
Update more packages to ship systemd service files. See How to Help
- Draft a packaging policy involving systemd (upgrade / install / removal).
- Provide integration for package maintainer tools
- invoke-rc.d/update-rc.d/service integration.
- Get Essential flag removed from sysvinit.
- Sort out what to do about pam_loginuid, and integration into the Debian PAM stack
- Decide what to do about group:lock (/var/lock).
- Make systemd-vconsole work. Investigate which of the console-* and kbd* packages are actually required and how to migrate the configuration.