| Commit message (Collapse) | Author | Files | Lines |
|
For systems that cannot support fork() (like no-mmu Linux), use daemon() if
it is available for the daemonizing code.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
Changed function to first close standard input (this may
fail but we don't care) and then try to open /dev/null (this
may fail but it shouldn't on Unix platforms plus we don't
know what to do in such case anyways). Since standard input
has the "zeroth" descriptor number next "open" will use it.
Since there is no "/dev/null" on Windows (It's not even
a valid path!) the second step is skipped if WIN32 is
defined.
As a final touch, since the function consists of merely two
function calls it has been moved to header file and declared
static inline.
[mk: un-inline daemonize_close_stdin()]
|
|
On Windows only daemonize_close_stdin() function does
something. Other functions are either empty or generate an
error. Those have been moved to header file and declared
static inline so compiler can remove the call all together.
|
|
The "group" configuration option is similar to "user" as it
sets user set what group MPD shall run as. With "user"
option, MPD changed GID to the GID of the user, however,
more control could be desired.
Moreover, the patch changes the way of checking whether no
setuid(2)/setgid(2) is required -- previously user names
were compered, now UID and GIDs are compered (ie. the one we
already have (getuid(2)/getgid(2)) with the one we want to
change to).
|
|
This updates the copyright header to all be the same, which is
pretty much an update of where to mail request for a copy of the GPL
and the years of the MPD project. This also puts all committers under
'The Music Player Project' umbrella. These entries should go
individually in the AUTHORS file, for consistancy.
|
|
|
|
Define the GLib logging domain in the following libraries: conf,
daemon, event_pipe, log.
|
|
If no "user" is configured, return from daemonize_set_user(). Save
one level of indent.
|
|
If mpd.conf specifies a user, and MPD is invoked by exactly this user,
ignore the "user" setting. Don't bother to look up its groups and
don't attempt to change uid, it won't work anyway.
|
|
|
|
Print details on why the fork() fails.
|
|
Moved the code which detaches from the parent process/session to a
separate function.
|
|
This causes a segmentation fault...
|
|
This way, we don't have to pass the full "Options" object to
daemonize().
|
|
The constructor/destructor functions parse and free the configuration
properly. This way, we don't have to load the pid file path more than
once.
|
|
Moved changeToUser(), cleanUpPidFile(), killFromPidFile() to
daemon.c. These are daemonization functions.
|
|
Renamed functions, types, variables.
|
|
There is only one valid error condition for setsid(): when the current
process is already the process group leader. This is non-critical.
|
|
To detach from the parent process, fork once and make the old process
exit. No need to do that twice.
|
|
Don't bother to call fstat() or isatty() on STDIN_FILENO.
|
|
redirect_stdin() is a daemonization function, and disconnecting from
the standard input is always a good idea for MPD.
|
|
|