guix/etc/init.d/guix-daemon.in
Ludovic Courtès d11b96eb54
etc: Add explicit ‘--substitute-urls’ in guix-daemon service files.
Having substitute URLs explicitly listed in the service startup file
makes it clearer what should be modified to permanently change the list
of substitute URLs.

* config-daemon.ac: Rename ‘guix_substitute_urls’ to
‘GUIX_SUBSTITUTE_URLS’ and substitute it.
* nix/local.mk (etc/guix-%.service, etc/init.d/guix-daemon)
(etc/guix-%.conf): Substitute it.
* etc/guix-daemon.conf.in, etc/guix-daemon.service.in,
etc/init.d/guix-daemon.in: Add an explicit ‘--substitute-urls’ option.

Change-Id: Ie491b7fab5c42e54dca582801c03805a85de2bf9
2024-06-26 22:59:55 +02:00

80 lines
1.8 KiB
Bash

#!/bin/bash
### BEGIN INIT INFO
# Provides: guix-daemon
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Guix build daemon
# Description: Provides a daemon that does builds for Guix
### END INIT INFO
set -e
mkdir -p "/var/run"
if [ ! -f "@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon" ]
then
exit 5
fi
case "$1" in
start)
if [ -f "/var/run/guix-daemon.pid" ]
then
if pgrep -F "/var/run/guix-daemon.pid" guix-daemon
then
exit 0
else
echo "guix-daemon has a stale pid file" >&2
exit 1
fi
else
daemonize \
-a \
-e "/var/log/guix-daemon-stderr.log" \
-o "/var/log/guix-daemon-stdout.log" \
-E GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale \
-E LC_ALL=en_US.utf8 \
-p "/var/run/guix-daemon.pid" \
@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon \
--build-users-group=guixbuild --discover=no \
--substitute-urls='@GUIX_SUBSTITUTE_URLS@'
fi
;;
stop)
if [ -f "/var/run/guix-daemon.pid" ]
then
pkill -F "/var/run/guix-daemon.pid" guix-daemon || {
exit 1
}
rm -f "/var/run/guix-daemon.pid"
exit 0
else
exit 0
fi
;;
status)
if [ -f "/var/run/guix-daemon.pid" ]
then
if pgrep -F "/var/run/guix-daemon.pid" guix-daemon
then
echo "guix-daemon is running"
exit 0
else
echo "guix-daemon has a stale pid file"
exit 1
fi
else
echo "guix-daemon is not running"
exit 3
fi
;;
restart|force-reload)
"$0" stop
"$0" start
;;
*)
echo "Usage: $0 (start|stop|status|restart|force-reload)"
exit 3
;;
esac