Thanks, this generally works, except this line: > GUIX_LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale > -E LC_ALL=en_US.utf8 -p /var/lock/guix-daemon.pid guix-daemon While trying to start the daemon, daemonize complains about the path not being absolute. I changed "guix-daemon" to "/gnu/store/ncknl03pkmamrxg7q9nxi1rn1qhvwbi9-guix-1.0.1/bin/guix-daemon" and it worked, but it isn't the right solution I guess. What should I do?
On Sun, 26 Jan 2020 23:38:20 +0100 Danny Milosavljevic <dan...@scratchpost.org> wrote: > Hi Jan, > > > Does someone plan writing init script for Guix, so it will work on > > distributions using sysV init? There are still distributions not > > using systemd, for example Devuan and last time I checked, the > > install script doesn't support it. > > I'm all for supporting it, but I can't remember all the idiocracies > and I have no machine to test it on. > > That said, sysv init scripts are just shell scripts which support the > arguments "start", "status", "stop" and sometimes have an LSB header > specifying where to put the stuff (which runlevels are supposed to > have it). > > We would basically put the following file into /etc/init.d/guix-daemon > and make it executable: > > #!/bin/bash -e > ### 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 > > case "$1" in > start) > daemonize -a -e /var/log/guix-daemon-stderr.log > -o /var/log/guix-daemon-stdout.log -E > GUIX_LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale > -E LC_ALL=en_US.utf8 -p /var/lock/guix-daemon.pid guix-daemon > --build-users-group=guixbuild ;; stop) > pid="`cat /var/lock/guix-daemon.pid`" if [ ! -z "${pid}" ] then > kill "${pid}" > sleep 10 > kill -9 "${pid}" > fi > # TODO: Maybe remove /var/lock/guix-daemon.pid ? > ;; > status) > pid="`cat /var/lock/guix-daemon.pid`" > if [ ! -z "${pid}" ] > then > if ps "${pid}" > /dev/null 2> /dev/null > then > echo "running" > else > echo "stale pid file" > fi > else > echo "not running" > fi > ;; > *) > echo "Usage: $0 (start|stop|status)" > ;; > esac > > I think in order to actually install the service one does this: > > $ sudo update-rc.d guix-daemon defaults > $ sudo update-rc.d guix-daemon enable Jan Wielkiewicz