.\" -*- coding: UTF-8 -*- .\" Copyright Michael Haardt (michael@cantor.informatik.rwth-aachen.de) .\" Sat Aug 27 20:43:50 MET DST 1994 .\" and Copyright (C) 2014, Michael Kerrisk .\" .\" %%%LICENSE_START(GPLv2+_DOC_FULL) .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public .\" License along with this manual; if not, see .\" . .\" %%%LICENSE_END .\" .\" Modified Sun Sep 11 19:19:05 1994 .\" Modified Mon Mar 25 10:19:00 1996 (merged a few .\" tiny changes from a man page by Charles Livingston). .\" Modified Sun Jul 21 14:45:46 1996 .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SETSID 2 "15 сентября 2017 г." Linux "Руководство программиста Linux" .SH ИМЯ setsid \- создает сеанс и устанавливает идентификатор группы процесса .SH СИНТАКСИС .ad l \fB#include \fP .br \fB#include \fP .PP \fBpid_t setsid(void);\fP .br .ad b .SH ОПИСАНИЕ Вызов \fBsetsid\fP() создаёт новый сеанс, если вызывающий процесс не является лидером группы процессов. Вызывающий процесс становится лидером нового сеанса (то есть, его ID сеанса становится равным ID самого процесса). Вызывающий процесс также становится лидером группы процессов новой группы процессов в сеансе (то есть, его ID группы процессов становится равным ID самого процесса). .PP Вызывающий процесс будет единственным в новой группе процессов и новом сеансе. .PP Изначально, новый сеанс не имеет управляющего терминала. О том, как сеанс получает управляющий терминал, смотрите в \fBcredentials\fP(7). .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении возвращается идентификатор (нового) сеанса вызывающего процесса. В случае ошибки возвращается \fI(pid_t)\ \-1\fP, а \fIerrno\fP устанавливается в соответствующее значение. .SH ОШИБКИ .TP \fBEPERM\fP Идентификатор группы процессов любого процесса равен PID вызывающего процесса. В этом случае, в частности, \fBsetsid\fP() завершается неудачно, если вызывающий процесс уже является лидером группы процессов. .SH "СООТВЕТСТВИЕ СТАНДАРТАМ" POSIX.1\-2001, POSIX.1\-2008, SVr4. .SH ЗАМЕЧАНИЯ Потомок, создаваемый с помощью \fBfork\fP(2), наследует ID сеанса своего родителя. Идентификатор сеанса сохраняется при вызове \fBexecve\fP(2). .PP Лидер группы процессов — это процесс, идентификатор группы процессов которого равен идентификатору самого процесса (PID). Отказ лидера группы процессов выполнять \fBsetsid\fP() предотвращает возможность того, что сам лидер группы процессов переместится в новый сеанс, в то время как другие процессы в группе останутся в первоначальном сеансе; это поломало бы жёсткую двухуровневую иерархию сценариев и групп процессов. Для того, чтобы \fBsetsid\fP() выполнился успешно, вызовите \fBfork\fP(2) и в родителе \fB_exit\fP(2), а затем в дочернем процессе (который по определению не может быть лидером группы процессов) вызовите \fBsetsid\fP(). .PP Если сеанс имеет управляющий терминал, у которого не установлен флаг \fBCLOCAL\fP и возникает зависание (hangup) терминала, то лидеру сеанса посылается \fBSIGHUP\fP. .PP Если завершается процесс, который является лидером сеанса, то сигнал \fBSIGHUP\fP посылается каждому процессу в приоритетной (foreground) группе процессов управляющего терминала. .SH "СМ. ТАКЖЕ" \fBsetsid\fP(1), \fBgetsid\fP(2), \fBsetpgid\fP(2), \fBsetpgrp\fP(2), \fBtcgetsid\fP(3), \fBcredentials\fP(7), \fBsched\fP(7) .SH ЗАМЕЧАНИЯ Эта страница является частью проекта Linux \fIman\-pages\fP версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу \%https://www.kernel.org/doc/man\-pages/. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Alexander Golubev , Azamat Hackimov , Hotellook, Nikita , Spiros Georgaras , Vladislav , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .