projects/guix·blob python-team · refs

80 lines · 1.8 KiB

1#!/bin/bash
2### BEGIN INIT INFO
3# Provides: guix-daemon
4# Required-Start: $remote_fs $syslog
5# Required-Stop: $remote_fs $syslog
6# Default-Start: 2 3 4 5
7# Default-Stop: 0 1 6
8# Short-Description: Guix build daemon
9# Description: Provides a daemon that does builds for Guix
10### END INIT INFO
11
12set -e
13mkdir -p "/var/run"
14if [ ! -f "@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon" ]
15then
16 exit 5
17fi
18
19case "$1" in
20start)
21 if [ -f "/var/run/guix-daemon.pid" ]
22 then
23 if pgrep -F "/var/run/guix-daemon.pid" guix-daemon
24 then
25 exit 0
26 else
27 echo "guix-daemon has a stale pid file" >&2
28 exit 1
29 fi
30 else
31 daemonize \
32 -a \
33 -e "/var/log/guix-daemon-stderr.log" \
34 -o "/var/log/guix-daemon-stdout.log" \
35 -E GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale \
36 -E LC_ALL=en_US.utf8 \
37 -p "/var/run/guix-daemon.pid" \
38 @localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon \
39 --build-users-group=guixbuild --discover=no \
40 --substitute-urls='@GUIX_SUBSTITUTE_URLS@'
41
42 fi
43 ;;
44stop)
45 if [ -f "/var/run/guix-daemon.pid" ]
46 then
47 pkill -F "/var/run/guix-daemon.pid" guix-daemon || {
48 exit 1
49 }
50 rm -f "/var/run/guix-daemon.pid"
51 exit 0
52 else
53 exit 0
54 fi
55 ;;
56status)
57 if [ -f "/var/run/guix-daemon.pid" ]
58 then
59 if pgrep -F "/var/run/guix-daemon.pid" guix-daemon
60 then
61 echo "guix-daemon is running"
62 exit 0
63 else
64 echo "guix-daemon has a stale pid file"
65 exit 1
66 fi
67 else
68 echo "guix-daemon is not running"
69 exit 3
70 fi
71 ;;
72restart|force-reload)
73 "$0" stop
74 "$0" start
75 ;;
76*)
77 echo "Usage: $0 (start|stop|status|restart|force-reload)"
78 exit 3
79 ;;
80esac