名称
daemon-运行于后台
概要
#include <unistd.h>
int daemon(int nochdir, int noclose);
描述
daemon()函数,主要用于某些程序希望自己脱离终端的控制而运行于后台的情况。
除非nochdir为非零值,如果nochdir为0,那么daemon会从当前目录,更改到根目录(“/”)下运行。
除非noclose为非零值,如果noclose为0,那么daemon会将标准输入,标准输出,标准错误输出重定向到/dev/null。
返回值
成功返回0,失败返回-1。
NAME
daemon - run in the background
SYNOPSIS
#include <unistd.h>
int daemon(int nochdir, int noclose);
DESCRIPTION
The daemon() function is for programs wishing to detach themselves
from the controlling terminal and run in the background as system
daemons.
Unless the argument nochdir is non-zero, daemon() changes the current
working directory to the root ("/").
Unless the argument noclose is non-zero, daemon() will redirect stan-
dard input, standard output and standard error to /dev/null.
RETURN VALUE
(This function forks, and if the fork() succeeds, the parent does
_exit(0), so that further errors are seen by the child only.) On
success zero will be returned. If an error occurs, daemon() returns
-1 and sets the global variable errno to any of the errors specified
for the library functions fork(2) and setsid(2).
SEE ALSO
fork(2), setsid(2)
NOTES
The glibc implementation can also return -1 when /dev/null exists but
is not a character device with the expected major and minor numbers.
In this case errno need not be set.
HISTORY
The daemon() function first appeared in BSD4.4.