Subject: Re: bug#47865: Missing dependency for sysv-init

From: Gabriel Hondet <[email-masked]>
Date: Mon, 19 Apr 2021 14:33:23 +0200

On Sun, Apr 18, 2021 at 01:13:04PM -0400, Leo Famulari wrote:
> On Sun, Apr 18, 2021 at 09:15:09AM +0200, Gabriel Hondet wrote:
> > I installed Guix on Devuan with SysV-init, but the script copied in
> > /etc/init.d/ uses the command "daemonize" which isn't listed in the
> > dependencies of "guix-install.sh". Consequently, guix is installed but
> > cannot be started, the command
> > 
> >     service guix-daemon start
> > 
> > returns
> > 
> >     /etc/init.d/guix-daemon: line 32: daemonize: command not found
> 
> Do you know where this `daemonize` command is supposed to come from? I
> don't see a package with this name in Guix. Is it part of Devuan?

Devuan has such a package (as well as Debian):

Package: daemonize
Version: 1.7.7-1+b1
Priority: optional
Section: admin
Source: daemonize (1.7.7-1)
Maintainer: Sandro Tosi <[email-masked]>
Installed-Size: 36.9 kB
Depends: libc6 (>= 2.4)
Homepage: http://software.clapper.org/daemonize/
Download-Size: 15.1 kB
APT-Manual-Installed: yes
APT-Sources: http://deb.devuan.org/merged beowulf/main amd64 Packages
Description: tool to run a command as a daemon
 As defined in W. Richard Stevens’ 1990 book, UNIX Network Programming
 (Addison-Wesley, 1990), a daemon is “a process that executes ‘in the
 background’ i.e., without an associated terminal or login shell) either
 waiting for some event to occur, or waiting to perform some specified task on a
 periodic basis.” Upon startup, a typical daemon program will:
 .
  * Close all open file descriptors (especially standard input, standard output
    and standard error)
  * Change its working directory to the root filesystem, to ensure that it
    doesn’t tie up another filesystem and prevent it from being unmounted
  * Reset its umask value
  * Run in the background (i.e., fork)
  * Disassociate from its process group (usually a shell), to insulate itself
    from signals (such as HUP) sent to the process group
  * Ignore all terminal I/O signals
  * Disassociate from the control terminal (and take steps not to reacquire one)
  * Handle any SIGCLD signals
 .
 Most programs that are designed to be run as daemons do that work for
 themselves. However, you’ll occasionally run across one that does not. When
 you must run a daemon program that does not properly make itself into a true
 Unix daemon, you can use daemonize to force it to run as a true daemon.