diff options
author | Anatol Pomozov <anatol.pomozov@gmail.com> | 2011-09-02 16:26:09 -0700 |
---|---|---|
committer | Miklos Szeredi <mszeredi@suse.cz> | 2011-09-23 13:28:51 +0200 |
commit | 7728b36a83fe20b366b1b6e72f3d0906ca89840c (patch) | |
tree | aa6144ee508e80d4a6dd8c0b6a56606c32fd94bd /util | |
parent | 0131407f4e1a376b9165adca656d799c30af6311 (diff) |
Replace daemon() function with fork()
daemon() is a BSD-ism. Although it is available on many platforms
it is not a standard function. Some platforms (e.g. MacOSX) deprecated
it.
It is safer just to use fork() function that is a part of POSIX.
Diffstat (limited to 'util')
-rw-r--r-- | util/ulockmgr_server.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/util/ulockmgr_server.c b/util/ulockmgr_server.c index 583fcf9..baef45d 100644 --- a/util/ulockmgr_server.c +++ b/util/ulockmgr_server.c @@ -352,11 +352,24 @@ int main(int argc, char *argv[]) if (*end) goto out_inval; - if (daemon(0, 1) == -1) { - perror("ulockmgr_server: daemon"); + /* demonize current process */ + switch(fork()) { + case -1: + perror("ulockmgr_server: fork"); exit(1); + case 0: + break; + default: + _exit(0); } + if (setsid() == -1) { + perror("ulockmgr_server: setsid"); + exit(1); + } + + (void) chdir("/"); + sigemptyset(&empty); sigprocmask(SIG_SETMASK, &empty, NULL); |