summaryrefslogtreecommitdiff
path: root/etc/guix-daemon.service.in
diff options
context:
space:
mode:
Diffstat (limited to 'etc/guix-daemon.service.in')
-rw-r--r--etc/guix-daemon.service.in8
1 files changed, 7 insertions, 1 deletions
diff --git a/etc/guix-daemon.service.in b/etc/guix-daemon.service.in
index 17b54eaeb0..9dbc3b5678 100644
--- a/etc/guix-daemon.service.in
+++ b/etc/guix-daemon.service.in
@@ -9,10 +9,16 @@ Description=Build daemon for GNU Guix
ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon \
--build-users-group=guixbuild --discover=no
Environment='GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
-RemainAfterExit=yes
StandardOutput=syslog
StandardError=syslog
+# Work around a nasty systemd ‘feature’ that kills the entire process tree
+# (including the daemon!) if any child, such as cc1plus, runs out of memory.
+OOMPolicy=continue
+
+# Despite the name, this is rate-limited: a broken daemon will eventually fail.
+Restart=always
+
# See <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00608.html>.
# Some package builds (for example, go@1.8.1) may require even more than
# 1024 tasks.