.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\" @(#)daemon.3 8.1 (Berkeley) 6/9/93 .\" Added mentioning of glibc weirdness wrt unistd.h. 5/11/98, Al Viro .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH daemon 3 "2 мая 2024 г." "Linux man\-pages 6.8" .SH ИМЯ daemon \- выполнение в фоновом режиме .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .P \fBint daemon(int \fP\fInochdir\fP\fB, int \fP\fInoclose\fP\fB);\fP .fi .P .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .P \fBdaemon\fP(): .nf .\" commit 266865c0e7b79d4196e2cc393693463f03c90bd8 начиная с 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) .fi .SH ОПИСАНИЕ Функция \fBdaemon\fP() необходима для того, чтобы отключить программу от управляющего терминала и запустить её в фоновом режиме подобно тому, как выполняются системные службы. .P Если аргумент \fInochdir\fP равен нулю, то \fBdaemon\fP() изменяет текущий рабочий каталог процесса на корневой («/»); в противном случае текущий рабочий каталог не изменяется. .P If \fInoclose\fP is zero, \fBdaemon\fP() redirects standard input, standard output, and standard error to \fI/dev/null\fP; otherwise, no changes are made to these file descriptors. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" .\" not .IR in order not to underline _ Эта функция порождает новый процесс и, если \fBfork\fP(2) завершается без ошибок, родительский процесс вызывает \fB_exit\fP(2), чтобы дальнейшие ошибки воспринимались только дочерним процессом. В случае успешного выполнения \fBdaemon\fP() возвращается ноль. Если возникла ошибка, то \fBdaemon\fP() возвращает \-1 и присваивает глобальной переменной \fIerrno\fP одно из значений, указанных для \fBfork\fP(2) и \fBsetsid\fP(2). .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBdaemon\fP() T} Безвредность в нитях MT\-Safe .TE .SH ВЕРСИИ A similar function appears on the BSDs. .P Реализация в glibc может также возвращать \-1 в случаях, когда \fI/dev/null\fP существует, но не является файлом символьного устройства с ожидаемыми основным и вспомогательным номерами. В этом случае нет необходимости устанавливать \fIerrno\fP. .SH СТАНДАРТЫ None. .SH ИСТОРИЯ 4.4BSD. .SH ОШИБКИ .\" FIXME . https://sourceware.org/bugzilla/show_bug.cgi?id=19144 .\" Tested using a program that uses daemon() and then opens an .\" otherwise unused console device (/dev/ttyN) that does not .\" have an associated getty process. Для библиотеки GNU C реализация этой функции была взята из BSD, и в ней не применяется техника двойного fork (т. е., \fBfork\fP(2), \fBsetsid\fP(2), \fBfork\fP(2)), поэтому необходимо проверить, что полученный процесс службы не является лидером сеанса. Вместо этого полученная служба \fIявляется\fP лидером сеанса. В системах, следующих семантике System V (например, Linux), это означает, что если служба открывает терминал, которой пока не является управляющим для другого сеанса, то этот терминал непреднамеренно станет управляющим терминалом для службы. .SH "СМОТРИТЕ ТАКЖЕ" \fBfork\fP(2), \fBsetsid\fP(2), \fBdaemon\fP(7), \fBlogrotate\fP(8) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал Yuri Kozlov и Иван Павлов . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику по его адресу электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .