Systemd

From Q
Jump to navigation Jump to search

Description

systemd is a system and session manager for Linux also including udev nowadays.

Kernel settings

First of all you need a recent kernel version >=4.2 and some kernel options set.

Installation

File: /etc/paludis/options.conf
*/* build_options: jobs=5 -recommended_tests
*/* systemd
sys-apps/systemd seccomp
# cave resolve systemd -x

Now we need to reinstall packages with the systemd option set.

# cave resolve world -cx

Network

You can find out what the network device will be named by running:

# udevadm test-builtin net_id /sys/class/net/<ifname> 2> /dev/null
Code: network device name
ID_NET_NAME_MAC=enx005056a84955
ID_NET_NAME_PATH=enp11s0

systemd-networkd

This configuration will default to DHCP as long as the 10-static.network doesn't match.

File: /etc/systemd/network/10-static.network
[Match]
Name=eno1

[Network]
Address=192.168.0.88/24
Gateway=192.168.0.1
DNS=192.168.0.1
File: /etc/systemd/network/20-dhcp.network
[Match]
Name=en*

[Network]
DHCP=yes
Domains=domain.local

[DHCP]
UseDomains=yes
# systemctl enable systemd-networkd.socket

Network Name Resolution manager

systemd-resolved

File: /etc/systemd/resolved.conf.d/resolved.conf
[Resolve]
DNS=192.168.0.1
# rm /etc/resolv.conf
# cd /etc
# ln -s /run/systemd/resolve/resolv.conf resolv.conf
# systemctl enable systemd-resolved.service

Network Time Synchronization (NTP)

systemd-timesyncd

File: /etc/systemd/timesyncd.conf.d/timesyncd.conf
[Time]
NTP=192.168.0.1
# systemctl enable systemd-timesyncd.service
# systemctl start systemd-timesyncd.service

Enable tty login

# systemctl enable getty@tty1.service

Enable sshd connectivity

# systemctl enable sshd.socket
# systemctl start sshd.socket


Configuration

Hostname

Edits /etc/hostname and /etc/machine-info.

# hostnamectl set-hostname desiredhostname

Timezone

Sets the /etc/localtime symlink.

# timedatectl set-timezone Europe/Berlin

Ensure the system RTC is in UTC, this might require setting Windows to UTC via a registry key when dual-booting.

# timedatectl set-local-rtc 0

Keyboard Layout

Edits /etc/vconsole.conf.

# localectl set-keymap de

Localization

Edits /etc/locale.conf.

# localectl set-locale LANG="en_US.UTF-8"

The systemd localectl commands sets the system locale, if you want to set your user locale use /etc/env.d/02locale.

Misc

Manually starting and stopping services

You'll find an overview of all installed services and sockets in /lib/systemd/system.

# systemctl start <service>.service
# systemctl stop <service>.service
# systemctl

prints a status report of your systemd setup.

Enable additional/optional services

systemd-journal-gatewayd (accessible via port 19531):

# systemctl enable systemd-journal-gatewayd.socket

cronie:

# systemctl enable cronie.service

ntp:

# timedatectl set-ntp 1

MySQL:

# systemctl enable mysql.service

Samba 4:

# systemctl enable smbd.service
# systemctl enable nmbd.service
# systemctl enable winbindd.service

SSSD:

# systemctl enable sssd.service

mdadm:

# systemctl enable mdadm.service

postfix:

# systemctl enable postfix.service

NFS (client):

# systemctl enable rpcstatd.service

NFS (server):

# systemctl enable nfs-server.service