Add system start-up files for guix-daemon.

* etc/init.d/guix-daemon.in: New file.
* nix/local.mk (etc/init.d/guix-daemon): New rule.
(nodist_sysvinitservice_DATA): Add etc/init.d/guix-daemon.in .
(CLEANFILES): Add etc/init.d/guix-daemon .
* .gitignore: Add etc/init.d/guix-daemon .
This commit is contained in:
Danny Milosavljevic 2020-01-28 18:38:57 +01:00
parent 57f85eef46
commit 73fbe04107
No known key found for this signature in database
GPG key ID: E71A35542C30BAA5
3 changed files with 93 additions and 2 deletions

1
.gitignore vendored
View file

@ -71,6 +71,7 @@
/etc/guix-daemon.service /etc/guix-daemon.service
/etc/guix-publish.conf /etc/guix-publish.conf
/etc/guix-publish.service /etc/guix-publish.service
/etc/init.d/guix-daemon
/guix-daemon /guix-daemon
/guix/config.scm /guix/config.scm
/libformat.a /libformat.a

78
etc/init.d/guix-daemon.in Normal file
View file

@ -0,0 +1,78 @@
#!/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
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

View file

@ -164,6 +164,16 @@ etc/guix-%.service: etc/guix-%.service.in \
"$<" > "$@.tmp"; \ "$<" > "$@.tmp"; \
mv "$@.tmp" "$@" mv "$@.tmp" "$@"
sysvinitservicedir = $(sysconfdir)/init.d
nodist_sysvinitservice_DATA = etc/init.d/guix-daemon
etc/init.d/guix-daemon: etc/init.d/guix-daemon.in \
$(top_builddir)/config.status
$(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \
$(SED) -e 's|@''localstatedir''@|$(localstatedir)|' < \
"$<" > "$@.tmp"; \
mv "$@.tmp" "$@"
# The '.conf' jobs for Upstart. # The '.conf' jobs for Upstart.
upstartjobdir = $(libdir)/upstart/system upstartjobdir = $(libdir)/upstart/system
nodist_upstartjob_DATA = etc/guix-daemon.conf etc/guix-publish.conf nodist_upstartjob_DATA = etc/guix-daemon.conf etc/guix-publish.conf
@ -177,7 +187,8 @@ etc/guix-%.conf: etc/guix-%.conf.in \
CLEANFILES += \ CLEANFILES += \
$(nodist_systemdservice_DATA) \ $(nodist_systemdservice_DATA) \
$(nodist_upstartjob_DATA) $(nodist_upstartjob_DATA) \
$(nodist_sysvinitservice_DATA)
EXTRA_DIST += \ EXTRA_DIST += \
%D%/AUTHORS \ %D%/AUTHORS \
@ -185,7 +196,8 @@ EXTRA_DIST += \
etc/guix-daemon.service.in \ etc/guix-daemon.service.in \
etc/guix-daemon.conf.in \ etc/guix-daemon.conf.in \
etc/guix-publish.service.in \ etc/guix-publish.service.in \
etc/guix-publish.conf.in etc/guix-publish.conf.in \
etc/init.d/guix-daemon.in
if CAN_RUN_TESTS if CAN_RUN_TESTS