79 lines
1.7 KiB
Bash
79 lines
1.7 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
|
|
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
|