Man page - daemon(3)

Packages contains this manual

Available languages:

en fr pt_BR es it pl ja ru ro de

Manual

DAEMON

名 前
書 式
説 明
返 り 値
属 性
準 拠
注 意
バ グ
関 連 項 目
こ の 文 書 に つ い て

名 前

daemon - バ ッ ク グ ラ ウ ン ド で 動 作 さ せ る

書 式

#include <unistd.h>

int daemon(int nochdir , int noclose );

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 ( feature_test_macros (7) 参 照 ):

daemon ():
glibc 2.21 以 降 :
_DEFAULT_SOURCE
glibc 2.19 と 2.20:
_DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
glibc 2.19 以 前 :
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

説 明

daemon () は 、 制 御 端 末 か ら 分 離 さ せ て シ ス テ ム デ ー モ ン と し て 動 作 さ せ た い プ ロ グ ラ ム の た め の 関 数 で あ る 。

nochdir が 0 の 場 合 、 daemon () は プ ロ セ ス の 現 在 の 作 業 デ ィ レ ク ト リ (current working directory) を ル ー ト デ ィ レ ク ト リ ("/") に 変 更 す る 。 そ れ 以 外 の 場 合 、 現 在 の 作 業 デ ィ レ ク ト リ は 変 更 さ れ な い 。

noclose が 0 の 場 合 、 daemon () は 標 準 入 力 ・ 標 準 出 力 ・ 標 準 エ ラ ー を /dev/null に リ ダ イ レ ク ト す る 。 そ れ 以 外 の 場 合 、 こ れ ら の フ ァ イ ル デ ィ ス ク リ プ タ ー は 変 更 さ れ な い 。

返 り 値

(こ の 関 数 が fork し て fork (2) が 成 功 す る と 、 親 プ ロ セ ス で は _exit (2) を 呼 び 出 す の で 、 こ れ 以 降 の エ ラ ー は 子 プ ロ セ ス か ら し か 見 れ な い )。 成 功 し た 場 合 、 daemon () は 0 を 返 す 。 エ ラ ー が 起 こ っ た 場 合 、 daemon () は -1 を 返 す 。 さ ら に 、 errno fork (2) と setsid (2) に 関 し て 規 定 さ れ た エ ラ ー を 設 定 す る 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-45593-1.png

準 拠

POSIX.1 に は な い 。 同 様 の 関 数 が BSD に は 見 ら れ る 。 daemon () 関 数 は 4.4BSD で 始 め て 登 場 し た 。

注 意

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.

バ グ

The GNU C library implementation of this function was taken from BSD, and does not employ the double-fork technique (i.e., fork (2), setsid (2), fork (2)) that is necessary to ensure that the resulting daemon process is not a session leader. Instead, the resulting daemon is a session leader. On systems that follow System V semantics (e.g., Linux), this means that if the daemon opens a terminal that is not already a controlling terminal for another session, then that terminal will inadvertently become the controlling terminal for the daemon.

関 連 項 目

fork (2), setsid (2), daemon (7), logrotate (8)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man-pages プ ロ ジ ェ ク ト の リ リ ー ス 5.10 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は https://www.kernel.org/doc/man-pages/ に 書 か れ て い る 。