Differences between revisions 230 and 231
Revision 230 as of 2014-02-25 20:22:38
Size: 7327
Editor: DavidFarning
Comment: add links to other systemd wiki pages
Revision 231 as of 2014-03-27 19:35:29
Size: 7959
Editor: ?scotte
Comment: Add documentation about kernel boot option for testing systemd
Deletions are marked like this. Additions are marked like this.
Line 24: Line 24:
=== Installation ===
Line 32: Line 33:
=== Configuring for testing ===
To test systemd before switching to it by default, you can add the following boot parameter to the kernel:

{{{
init=/bin/systemd
}}}

This can be done in the grub menu for a single boot - press "e" in the grub menu and add this to the '''kernel''' line. For example, depending on the options required for ''your'' particular system, it might look something like:

{{{
linux /vmlinuz-3.13-1-amd64 root=/dev/mapper/root-root init=/bin/systemd ro quiet
}}}

If PID '''1''' is '''systemd''' then your system is running with systemd.

=== Configuring as default ===

Translation(s): English - Russian


systemd - system and service manager

Introduction

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.

Installation

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.

Configuring for testing

To test systemd before switching to it by default, you can add the following boot parameter to the kernel:

init=/bin/systemd

This can be done in the grub menu for a single boot - press "e" in the grub menu and add this to the kernel line. For example, depending on the options required for your particular system, it might look something like:

linux   /vmlinuz-3.13-1-amd64 root=/dev/mapper/root-root init=/bin/systemd ro quiet

If PID 1 is systemd then your system is running with systemd.

Configuring as default

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.

# 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.

Debugging

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

See also http://fedoraproject.org/wiki/How_to_debug_Systemd_problems

Bugs and Bug-Tracking-Systems

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.

Debian specific channels include

Several other distributions are using systemd

Debian Resources

Other Resources

TODO


CategoryPermalink