Systemd: Difference between revisions

From Q
Jump to navigation Jump to search
Tgurr (talk | contribs)
No edit summary
Tgurr (talk | contribs)
 
(28 intermediate revisions by the same user not shown)
Line 3: Line 3:


== Kernel settings ==
== Kernel settings ==
First of all you need a recent kernel version >=3.8 and some [[Kernel#systemd|kernel options]] set.
First of all you need a recent kernel version >=4.2 and some [[Kernel#systemd|kernel options]] set.


== Installation ==
== Installation ==
Line 11: Line 11:
*/* build_options: jobs=5 -recommended_tests
*/* build_options: jobs=5 -recommended_tests
*/* systemd
*/* systemd
sys-apps/systemd simple-net
sys-apps/systemd seccomp
</pre>
</pre>
}}
}}
Line 34: Line 34:
}}
}}


=== DHCP (NetworkManager) ===
=== systemd-networkd ===


{{Root|cave resolve repository/desktop -x}}
This configuration will default to DHCP as long as the 10-static.network doesn't match.


{{Root|cave resolve NetworkManager -x}}
{{File|/etc/systemd/network/10-static.network|
<pre>
[Match]
Name=eno1
 
[Network]
Address=192.168.0.88/24
Gateway=192.168.0.1
DNS=192.168.0.1
</pre>
}}
 
{{File|/etc/systemd/network/20-dhcp.network|
<pre>
[Match]
Name=en*
 
[Network]
DHCP=yes
Domains=domain.local
 
[DHCP]
UseDomains=yes
</pre>
}}
 
{{Root|systemctl enable systemd-networkd.socket}}
 
== Network Name Resolution manager ==
 
=== systemd-resolved ===
 
{{File|/etc/systemd/resolved.conf.d/resolved.conf|
<pre>
[Resolve]
DNS=192.168.0.1
</pre>
}}
{{Root|rm /etc/resolv.conf}}
 
{{Root|cd /etc}}
 
{{Root|ln -s /run/systemd/resolve/resolv.conf resolv.conf}}
 
{{Root|systemctl enable systemd-resolved.service}}


{{Root|systemctl enable NetworkManager.service}}
== Network Time Synchronization (NTP) ==


=== Static (simple-net) ===
=== systemd-timesyncd ===


{{File|/etc/conf.d/network.conf|
{{File|/etc/systemd/timesyncd.conf.d/timesyncd.conf|
<pre>
<pre>
IFACE=enp11s0
[Time]
IPV4=192.168.0.2
NTP=192.168.0.1
MASK=255.255.255.0
BCAST=255.255.255.0
GATEWAY=192.168.0.1
</pre>
</pre>
}}
}}


{{Root|systemctl enable network.service}}
{{Root|systemctl enable systemd-timesyncd.service}}
 
{{Root|systemctl start systemd-timesyncd.service}}
 
== Enable tty login ==
{{Root|systemctl enable getty@tty1.service}}


== Enable sshd connectivity ==
== Enable sshd connectivity ==
Line 61: Line 107:


{{Root|systemctl start sshd.socket}}
{{Root|systemctl start sshd.socket}}
Reboot and login.




Line 78: Line 122:


{{Root|timedatectl set-timezone Europe/Berlin}}
{{Root|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.
{{Root|timedatectl set-local-rtc 0}}


=== Keyboard Layout ===
=== Keyboard Layout ===
Line 89: Line 137:
Edits /etc/locale.conf.
Edits /etc/locale.conf.


{{Root|<nowiki>localectl set-locale LANG="en_GB.utf8"</nowiki>}}
{{Root|<nowiki>localectl set-locale LANG="en_US.UTF-8"</nowiki>}}


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


== Misc ==
== Misc ==
Line 107: Line 155:
systemd-journal-gatewayd (accessible via port 19531):
systemd-journal-gatewayd (accessible via port 19531):


{{Root|systemctl enable systemd-journal-gatewayd.service}}
{{Root|systemctl enable systemd-journal-gatewayd.socket}}
 
NFS (client):


{{Root|systemctl start rpcstatd.service}}
cronie:


vixie-cron:
{{Root|systemctl enable cronie.service}}
 
{{Root|systemctl enable vixie-cron.service}}


ntp:
ntp:


{{Root|systemctl enable ntpd.service}}
{{Root|timedatectl set-ntp 1}}


MySQL:
MySQL:


{{Root|systemctl enable mysql.service}}
{{Root|systemctl enable mysql.service}}
Samba 4:
{{Root|systemctl enable smbd.service}}
{{Root|systemctl enable nmbd.service}}
{{Root|systemctl enable winbindd.service}}
SSSD:
{{Root|systemctl enable sssd.service}}
mdadm:
{{Root|systemctl enable mdadm.service}}
postfix:
{{Root|systemctl enable postfix.service}}
NFS (client):
{{Root|systemctl enable rpcstatd.service}}
NFS (server):
{{Root|systemctl enable nfs-server.service}}

Latest revision as of 09:51, 18 March 2020

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