aboutsummaryrefslogtreecommitdiffstats
path: root/src/daemon.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* eliminate g_error() usageThomas Jansen2010-09-251-19/+19
| | | | | | | | | | | | | | Replaced all occurrences of g_error() with MPD_ERROR() located in a new header file 'mpd_error.h'. This macro uses g_critical() to print the error message and then exits gracefully in contrast to g_error() which would internally call abort() to produce a core dump. The macro name is distinctive and allows to find all places with dubious error handling. The long-term goal is to get rid of MPD_ERROR() altogether. To facilitate the eventual removal of this macro it was added in a new header file rather than to an existing header file. This fixes #2995 and #3007.
* Update copyright notices.Avuton Olrich2009-12-311-1/+1
|
* use daemon() when the C library provides itMike Frysinger2009-08-131-6/+18
| | | | | | | 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>
* daemon: daemonize_close_stdin() optimised.Michal Nazarewicz2009-07-221-12/+2
| | | | | | | | | | | | | | | | | | 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()]
* daemon: Moved empty Windows version functions to header fileMichal Nazarewicz2009-07-191-21/+6
| | | | | | | 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.
* daemon: added "group" configuration optionMichal Nazarewicz2009-07-191-17/+31
| | | | | | | | | | | | | 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).
* all: Update copyright header.Avuton Olrich2009-03-131-4/+5
| | | | | | | | 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.
* daemon: disable daemonize_detach() on WIN32Max Kellermann2009-03-011-1/+3
|
* added G_LOG_DOMAIN macros to several librariesMax Kellermann2009-02-191-0/+3
| | | | | Define the GLib logging domain in the following libraries: conf, daemon, event_pipe, log.
* daemon: return early from daemonize_set_user()Max Kellermann2009-02-151-19/+20
| | | | | If no "user" is configured, return from daemonize_set_user(). Save one level of indent.
* daemon: ignore "user" setting if already running as that userMax Kellermann2009-02-151-3/+6
| | | | | | 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.
* daemon: added comments to daemonize_detach()Max Kellermann2009-02-151-0/+9
|
* daemon: print fork error messageMax Kellermann2009-02-151-2/+3
| | | | Print details on why the fork() fails.
* daemon: moved code to daemonize_detach()Max Kellermann2009-02-151-19/+23
| | | | | Moved the code which detaches from the parent process/session to a separate function.
* daemon: removed unused variable "userpwd"Max Kellermann2009-01-181-8/+4
| | | | This causes a segmentation fault...
* daemon: pass "detach" flag to daemonize()Max Kellermann2009-01-181-3/+4
| | | | | This way, we don't have to pass the full "Options" object to daemonize().
* daemon: added daemonize_init(), daemonize_finish()Max Kellermann2009-01-181-38/+62
| | | | | | 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.
* main: moved code to daemon.cMax Kellermann2009-01-181-0/+97
| | | | | Moved changeToUser(), cleanUpPidFile(), killFromPidFile() to daemon.c. These are daemonization functions.
* conf: no CamelCase, part IMax Kellermann2009-01-171-1/+2
| | | | Renamed functions, types, variables.
* daemon: don't check the setsid() return valueMax Kellermann2009-01-131-3/+1
| | | | | There is only one valid error condition for setsid(): when the current process is already the process group leader. This is non-critical.
* daemon: don't fork twice to daemonizeMax Kellermann2009-01-131-8/+0
| | | | | To detach from the parent process, fork once and make the old process exit. No need to do that twice.
* daemon: simplified daemonize_close_stdin()Max Kellermann2008-12-301-16/+6
| | | | Don't bother to call fstat() or isatty() on STDIN_FILENO.
* listen: moved redirect_stdin() to daemon.cMax Kellermann2008-12-301-0/+26
| | | | | redirect_stdin() is a daemonization function, and disconnecting from the standard input is always a good idea for MPD.
* main: moved daemonize() to daemon.cMax Kellermann2008-12-301-0/+86