mirror of
https://github.com/systemd/systemd.git
synced 2024-11-06 08:26:52 +03:00
21d0dd5a89
As discussed on systemd-devel [1], in Fedora we get lots of abrt reports about the watchdog firing [2], but 100% of them seem to be caused by resource starvation in the machine, and never actual deadlocks in the services being monitored. Killing the services not only does not improve anything, but it makes the resource starvation worse, because the service needs cycles to restart, and coredump processing is also fairly expensive. This adds a configuration option to allow the value to be changed. If the setting is not set, there is no change. My plan is to set it to some ridiculusly high value, maybe 1h, to catch cases where a service is actually hanging. [1] https://lists.freedesktop.org/archives/systemd-devel/2019-October/043618.html [2] https://bugzilla.redhat.com/show_bug.cgi?id=1300212
51 lines
1.6 KiB
SYSTEMD
51 lines
1.6 KiB
SYSTEMD
# SPDX-License-Identifier: LGPL-2.1+
|
|
#
|
|
# This file is part of systemd.
|
|
#
|
|
# systemd is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU Lesser General Public License as published by
|
|
# the Free Software Foundation; either version 2.1 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
[Unit]
|
|
Description=Container %i
|
|
Documentation=man:systemd-nspawn(1)
|
|
PartOf=machines.target
|
|
Before=machines.target
|
|
After=network.target systemd-resolved.service
|
|
RequiresMountsFor=/var/lib/machines
|
|
|
|
[Service]
|
|
# Make sure the DeviceAllow= lines below can properly resolve the 'block-loop' expression (and others)
|
|
ExecStartPre=-/sbin/modprobe -abq tun loop dm-mod
|
|
ExecStart=@bindir@/systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --network-veth -U --settings=override --machine=%i
|
|
KillMode=mixed
|
|
Type=notify
|
|
RestartForceExitStatus=133
|
|
SuccessExitStatus=133
|
|
Slice=machine.slice
|
|
Delegate=yes
|
|
TasksMax=16384
|
|
@SERVICE_WATCHDOG@
|
|
|
|
# Enforce a strict device policy, similar to the one nspawn configures when it
|
|
# allocates its own scope unit. Make sure to keep these policies in sync if you
|
|
# change them!
|
|
DevicePolicy=closed
|
|
DeviceAllow=/dev/net/tun rwm
|
|
DeviceAllow=char-pts rw
|
|
|
|
# nspawn itself needs access to /dev/loop-control and /dev/loop, to implement
|
|
# the --image= option. Add these here, too.
|
|
DeviceAllow=/dev/loop-control rw
|
|
DeviceAllow=block-loop rw
|
|
DeviceAllow=block-blkext rw
|
|
|
|
# nspawn can set up LUKS encrypted loopback files, in which case it needs
|
|
# access to /dev/mapper/control and the block devices /dev/mapper/*.
|
|
DeviceAllow=/dev/mapper/control rw
|
|
DeviceAllow=block-device-mapper rw
|
|
|
|
[Install]
|
|
WantedBy=machines.target
|