1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
|
daemonize Change Log
====================
Changes in version 1.7.8:
- Fixed various compiler and cross-linking issues. Thanks to
@derekstraka for the patch.
Changes in version 1.7.7:
- CFLAGS and LDFLAGS not passed through from `configure` to `Makefile`. Fixes GitHub
Issue #20 <https://github.com/bmc/daemonize/issues/20>. Thanks to Andrew Stormont
(andyjstormont /at/ gmail.com) for the patch.
Changes in version 1.7.6:
- Fixed potential memory allocation issues. See GitHub Issue #15
<https://github.com/bmc/daemonize/issues/15> and pull request #16
<https://github.com/bmc/daemonize/pull/16>. Thanks to Frederic Descamps
(frederic.descamps /at/ percona.com) for the fix.
Changes in version 1.7.5:
- Added support for out-of-tree builds, per [Issue #12][]. Thanks to
@andy-js
[Issue #12]: https://github.com/bmc/daemonize/issues/12
Changes in version 1.7.4:
- Merged `acconfig.h` patch from Andreas Müller
(schnitzeltony _at_ googlemail.com) that cleans up `getopt` references.
- Moved version stamp into a header.
Changes in version 1.7.3:
- Merged patch from Ewan Mellor (ewan.mellor _at_ citrix.com) that adds an
appropriate definition for `HAVE_INITGROUPS` to `config.h.in`.
Changes in version 1.7.2:
- Fixed bad reference to `LOG_ERROR` in `daemon.c`, causing compilation
problems (Should have been `LOG_ERR`.)
Changes in version 1.7.1:
- Added emulator for *flock*(2) file locking call, emulated in terms of
*lockf*(3), for systems (like Solaris) that don't have *flock*. Addresses
[Issue #3][]. Tested on Solaris 11 (x86).
[Issue #3]: https://github.com/bmc/daemonize/issues/3
Changes in version 1.7.0:
- Now supports a `-E` parameter, which allows setting one or more environment
variables, to be passed to the daemon. Based on a suggestion from
Michel Gouget *michel /at/ gouget.org*.
Changes in version 1.6.2:
- Local copy of daemon(3) now errors out (with a message to syslog(3)) if
it cannot open /dev/null. Thanks to Folkert van Heusden
*folkert.mobiel /at/ gmail.com* for noticing the problem.
Changes in version 1.6.1:
- Makefile now generates daemonize.html, an HTML-ized version of the man page.
- Fixed usage message, which incorrectly said "stderr", instead of "stdout"
in the description of the "-o" option. Thanks to [Sam Pierson][] for the
patch.
[Sam Pierson]: http://sampierson.com/blog
Changes in version 1.6:
Rolled in changes submitted by Ken D. Farnen, (kenf /at/ 14Cubed.COM):
- On slackware, all of the rc.???? scripts run directly from init, and init
doesn't set up much in the way of an environment, whereas login stuffs
loads of stuff into the environment. Daemonize now ensures that a minimum
environment is passed to the exec-ed daemon (IFS and PATH).
- The -u flag now puts USER, HOME and LOGNAME into the environment, for the
benefit of programs that rely on them. The lack of these environment
variables seems to have deleterious effects on MythTV, for example.
- On Slackware Linux, access to video and audio device entries is
controlled by secondary group membership. (e.g., A user who needs access
to a dvb device needs to be in group "video", and a user who needs access
to dsp devices needs to be in group "audio".), This is typically done by
the login code. Daemonize now initializes those group memberships, as
well, if the initgroups() function is present.
Changes in version 1.5.6:
- Accepted and applied a patch from Gary T. Giesen (giesen /at/ snickers.org)
that allows the daemonize Makefile to play well with Linux RPMs.
Changes in version 1.5.5:
- Changes in 1.5.4 made it impossible to create PID files in directories
not owned by the user specified with -u. Prior to 1.5.4, doing so was
possible. It is now possible again, and the functionality has been
corrected slightly to ensure that the proper PID is written and that the
PID file has mode 0644.
Changes in version 1.5.4:
- If a user name is specified via the -u option, the output files specified
by the -o and -e options are now opened *after* daemonize switches users,
not before (as happened in previous versions). This change ensures that
the output files end up being owned by that user, not by root. This
change has no effect if -u is not used.
- Rearranged and simplified some of the code in daemonize.c
- Added some documentation to the code.
Changes in version 1.5.3:
- Minor licensing change. (configure.in still emitted a message indicated
that daemonize is GPL-licensed. It's BSD-licensed.)
- Updated copyright information.
Changes in version 1.5.2:
Two changes suggested and supplied by Yakov Lerner <iler.ml <at> gmail.com>:
- Added a "-l lockfile" option, permitting daemonize to use a lockfile to
ensure that only one instance of the daemon runs at a time.
- Now makes additional checks to ensure that the program specified to
daemonize is a regular file, not a directory.
Changes in version 1.5.1:
- Now released under BSD-style license, not GNU Public License.
Changes in version 1.5:
- daemonize can now optionally redirect the daemon's standard output and
standard error to files
- configure now supports a local basename() emulator.
Changes in version 1.4:
- Version of daemon(3) shipped with daemonize attempted to redirect
stdin, stdout and stderr to /dev/null, by closing all file descriptors
(using sysconf(_SC_OPEN_MAX) to determine the maximum file descriptor).
This method wasn't working, and apparently the forked daemon process
was reacquiring (or still had) valid stdin, stdout and stderr file
descriptors. I made some changes to daemon.c to be more consistent with
how the native FreeBSD and Linux versions behave.
This bug may have contributed to a problem on AIX. According to
Ron Avriel <ron /at/ cti2 /dot/ com>, when he telnets to an AIX 5.2
system and uses daemonize create a daemon, he can't log out of the telnet
session (i.e., the logout operation hangs) until he kills the daemon.
That observation is consistent with the theory that the daemon process is
still holding open the controlling terminal.
- daemonize now installs with 0755 permissions, instead of 0700.
Changes in version 1.3:
- The "-c" option now actually works. Duh.
Changes in version 1.2:
- The external names in getopt.c are now prefixed with "x_" (e.g.,
x_getopt(), x_opterr, etc.). The function's name has been changed to
avoid type conflicts with the native getopt() on the host operating
system. (This is known to happen on Solaris 8, for instance.) Thanks
to Michael Fuchs <mf /at/ mfox /dot/ de> for pointing out the problem
on Solaris.
Changes in version 1.1:
- Now uses local getopt.c unconditionally, instead of defaulting to
whatever's on the system. This gets around a problem when installing on
systems with GNU getopt (e.g., Linux). Unless POSIXLY_CORRECT is set in
the environment, GNU getopt scans the entire command line, which means
it'll complain about "unknown options" that are specified in the command
being passed to daemonize. One solution is to have daemonize set
POSIXLY_CORRECT right before calling getopt() (and then restore it before
running the program-to-daemonize, in case it might affect that program's
behavior). However, it's just simpler to use the old, public domain
getopt routine.
- daemonize now verifies that the program actually exists before
daemonizing. (It didn't check before.)
|