services: bitlbee: Support libpurple plugins.
[jackhill/guix/guix.git] / etc / init.d / guix-daemon.in
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
12 set -e
13 mkdir -p "/var/run"
14 if [ ! -f "@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon" ]
15 then
16 exit 5
17 fi
18
19 case "$1" in
20 start)
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
40 fi
41 ;;
42 stop)
43 if [ -f "/var/run/guix-daemon.pid" ]
44 then
45 pkill -F "/var/run/guix-daemon.pid" guix-daemon || {
46 exit 1
47 }
48 rm -f "/var/run/guix-daemon.pid"
49 exit 0
50 else
51 exit 0
52 fi
53 ;;
54 status)
55 if [ -f "/var/run/guix-daemon.pid" ]
56 then
57 if pgrep -F "/var/run/guix-daemon.pid" guix-daemon
58 then
59 echo "guix-daemon is running"
60 exit 0
61 else
62 echo "guix-daemon has a stale pid file"
63 exit 1
64 fi
65 else
66 echo "guix-daemon is not running"
67 exit 3
68 fi
69 ;;
70 restart|force-reload)
71 "$0" stop
72 "$0" start
73 ;;
74 *)
75 echo "Usage: $0 (start|stop|status|restart|force-reload)"
76 exit 3
77 ;;
78 esac