.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1983, 1991 Regents of the University of California. .\" and Copyright (C) 2007, Michael Kerrisk .\" All rights reserved. .\" .\" %%%LICENSE_START(BSD_4_CLAUSE_UCB) .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" %%%LICENSE_END .\" .\" @(#)getpgrp.2 6.4 (Berkeley) 3/10/91 .\" .\" Modified 1993-07-24 by Rik Faith .\" Modified 1995-04-15 by Michael Chastain : .\" Added 'getpgid'. .\" Modified 1996-07-21 by Andries Brouwer .\" Modified 1996-11-06 by Eric S. Raymond .\" Modified 1999-09-02 by Michael Haardt .\" Modified 2002-01-18 by Michael Kerrisk .\" Modified 2003-01-20 by Andries Brouwer .\" 2007-07-25, mtk, fairly substantial rewrites and rearrangements .\" of text. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SETPGID 2 "15. September 2017" Linux Linux\-Programmierhandbuch .SH BEZEICHNUNG setpgid, getpgid, setpgrp, getpgrp \- Prozessgruppe setzen/holen .SH ÜBERSICHT \fB#include \fP .br \fB#include \fP .PP \fBint setpgid(pid_t \fP\fIpid\fP\fB, pid_t \fP\fIpgid\fP\fB);\fP .br \fBpid_t getpgid(pid_t \fP\fIpid\fP\fB);\fP .PP \fBpid_t getpgrp(void);\fP /* POSIX.1\-Version */ .br \fBpid_t getpgrp(pid_t \fP\fIpid\fP\fB);\fP /* BSD\-Version */ .PP \fBint setpgrp(void);\fP /* System\-V\-Version */ .br \fBint setpgrp(pid_t \fP\fIpid\fP\fB, pid_t \fP\fIpgid\fP\fB);\ \fP /* BSD\-Version */ .PP .in -4n Mit Glibc erforderliche Makros (siehe \fBfeature_test_macros\fP(7)): .in .PP .ad l \fBgetpgid\fP(): .RS 4 .\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE\ >=\ 500 .br || /* Seit Glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .PP \fBsetpgrp\fP() (POSIX.1): .nf .\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE\ >=\ 500 || /* Seit Glibc 2.19: */ _DEFAULT_SOURCE || /* Glibc\-Versionen <= 2.19: */ _SVID_SOURCE .fi .PP \fBsetpgrp\fP()\ (BSD), \fBgetpgrp\fP()\ (BSD): .nf [Diese sind nur in Glibc vor 2.19 verfügbar] _BSD_SOURCE && !\ (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE || _GNU_SOURCE || _SVID_SOURCE) .fi .ad .SH BESCHREIBUNG Alle diese Schnittstellen sind unter Linux verfügbar. Sie werden für das Ermitteln und Setzen der Prozessgruppenkennung (PGID) eines Prozesses verwendet. Die bevorzugten, in POSIX.1 spezifizierten Arten dies zu erledigen sind: \fBgetpgrp\fP(void) zum Ermitteln der PGID des aufrufenden Prozesses und \fBsetpgid\fP() für das Setzen der PGID eines Prozesses. .PP \fBsetpgid\fP() setzt die PGID des Prozesses \fIpid\fP auf \fIpgid\fP. Falls die \fIpid\fP gleich Null ist, wird die Prozesskennung des aufrufenden Prozesses verwendet. Falls die \fIpgid\fP gleich Null ist, wird PGID des Prozesses \fIpid\fP auf seine Prozesskennung gesetzt. Wenn \fBsetpgid\fP() verwendet wird, um einen Prozess von einer Prozessgruppe in eine andere zu verschieben (wie das manche Shells tun, wenn sie Pipes erzeugen), müssen beide Prozessgruppen Teil der gleichen Sitzung sein (siehe \fBsetsid\fP(2) und \fBcredentials\fP(7)). In diesem Fall gibt die \fIpgid\fP einer bestehende Prozessgruppe an, deren Mitgliedschaft erworben werden soll, und die Sitzungskennung dieser Gruppe muss mit der Sitzungskennung des wechselnden Prozesses übereinstimmen. .PP Die POSIX.1\-Version von \fBgetpgrp\fP() erwartet kein Argument und liefert die PGID des aufrufenden Prozesses zurück. .PP \fBgetpgid\fP() gibt die PGID des Prozesses \fIpid\fP zurück. Falls \fIpid\fP gleich Null ist, wird die Prozesskennung des aufrufenden Prozesses verwendet. (Die Ermittlung einer PGID eines anderen Prozesses als des aufrufenden ist selten erforderlich. Für diese Aufgabe wird die POSIX.1\-Version von \fBgetpgrp\fP() bevorzugt.) .PP Das System\-V\-artige \fBsetpgrp\fP() erwartet kein Argument und ist äquivalent zu \fIsetpgid(0,\ 0)\fP. .PP Der BSD\-spezifische \fBsetpgrp\fP()\-Aufruf erwartet die Argumente \fIpid\fP und \fIpgid\fP und ruft Folgendes auf: .PP setpgid(pid, pgid) .PP .\" The true BSD setpgrp() system call differs in allowing the PGID .\" to be set to arbitrary values, rather than being restricted to .\" PGIDs in the same session. Seit glibc 2.19 wird die BSD\-spezifische Funktion \fBsetpgrp\fP() nicht mehr in \fI\fP verwendet. Aufrufe sollten durch den \fBsetpgid\fP()\-Aufruf ersetzt werden, wie oben gezeigt. .PP Der BSD\-spezifische \fBgetpgrp\fP()\-Aufruf erwartet ein einzelnes Argument \fIpid\fP und ruft Folgendes auf: .PP getpgid(pid) .PP Seit glibc 2.19 wird die BSD\-spezifische Funktion \fBgetpgrp\fP() nicht mehr in \fI\fP verwendet. Aufrufe sollten durch das POSIX\-konforme \fBgetpgrp\fP() ersetzt werden, welches keine Argumente akzeptiert (falls beabsichtigt ist, die PGID des Aufrufenden zu ermitteln), oder mit dem \fBgetpgid\fP()\-Aufruf, wie oben gezeigt. .SH RÜCKGABEWERT Bei Erfolg geben \fBsetpgid\fP() und \fBsetpgrp\fP() Null zurück. Bei einem Fehler wird \-1 zurückgegeben und \fIerrno\fP entsprechend gesetzt. .PP Der POSIX.1\-\fBgetpgrp\fP() gibt immer die PGID des Aufrufenden zurück. .PP \fBgetpgid\fP() und das BSD\-spezifische \fBgetpgrp\fP() geben bei Erfolg immer eine Prozessgruppe zurück. Bei einem Fehler wird \-1 zurückgegeben und \fIerrno\fP entsprechend gesetzt. .SH FEHLER .TP \fBEACCES\fP Es wurde versucht, die Prozessgruppenkennung eines der Kinder des aufrufenden Prozesses zu ändern und das Kind hat bereits ein \fBexecve\fP(2) durchgeführt (\fBsetpgid\fP(), \fBsetpgrp\fP()). .TP \fBEINVAL\fP \fIpgid\fP ist kleiner als 0 (\fBsetpgid\fP(), \fBsetpgrp\fP()). .TP \fBEPERM\fP Es wurde versucht, einen Prozess in eine Prozessgruppe in einer anderen Sitzung zu verschieben oder die Prozessgruppenkennung eines der Kinder des aufrufenden Prozesses zu ändern und das Kind war in einer anderen Sitzung oder die Prozessgruppenkennung eines »session leaders« zu ändern (\fBsetpgid\fP(), \fBsetpgrp\fP()). .TP \fBESRCH\fP Für \fBgetpgid\fP(): \fIpid\fP passt auf keinen Prozess. Für \fBsetpgid\fP(): \fIpid\fP ist nicht der aufrufende Prozess und kein Kind des aufrufenden Prozesses. .SH "KONFORM ZU" \fBsetpgid\fP() und die Version von \fBgetpgrp\fP() ohne Argumente sind zu POSIX.1\-2001 konform. .PP POSIX.1\-2001 spezifiziert auch \fBgetpgid\fP() und die Version von \fBsetpgrp\fP(), die kein Argument akzeptiert. (In POSIX.1\-2008 ist diese \fBsetpgrp\fP()\-Spezifikation als obsolet markiert.) .PP Die Version von \fBgetpgrp\fP() mit einem Argument und die Version von \fBsetpgrp\fP, die zwei Argumente akzeptiert, stammen von 4.2BSD ab und sind nicht in POSIX.1 spezifiziert. .SH ANMERKUNGEN Ein mittels \fBfork\fP(2) erstelltes Kind erbt die Prozessgruppenkennung des Elternprozesses. Die PGID wird über ein \fBexecve\fP(2) hinweg erhalten. .PP Jede Prozessgruppe ist Teilnehmer einer Sitzung und jeder Prozess ist Teilnehmer der Sitzung, an der seine Prozessgruppe teilnimmt. (Siehe \fBcredentials\fP(7).) .PP Einer Sitzung kann ein steuerndes Terminal zugeordnet sein. Zu jeder Zeit kann eine (und nur eine) der Prozessgruppen die Vordergrund\-Prozessgruppe für das Terminal sein; die verbleibenden Prozessgruppen sind im Hintergrund. Falls vom Terminal ein Signal erzeugt wird (z. B. die Betätigung der Unterbrechungstaste, um ein \fBSIGINT\fP zu bewirken), wird dieses Signal an die Vordergrund\-Prozessgruppe gesendet. (Siehe \fBtermios\fP(3) für eine Beschreibung der Zeichen, die Signale erzeugen.) Nur die Vordergrund\-Prozessgruppe kann vom Terminal lesen (mittels \fBread\fP(2)); wenn das eine Hintergrund\-Prozessgruppe versucht, wird an sie ein \fBSIGTSTP\fP\-Signal gesendet, das sie »in den Zwangsurlaub schickt«. Die Funktionen \fBtcgetpgrp\fP(3) und \fBtcsetpgrp\fP(3) werden verwendet, um die Vordergrund\-Prozessgruppe des steuernden Terminals zu ermitteln oder zu setzen. .PP Die Systemaufrufe \fBsetpgid\fP() und \fBgetpgrp\fP() werden von Programmen wie der \fBbash\fP(1) zur Erzeugung von Prozessgruppen verwendet, um die Shell\-Jobs zu steuern. .PP .\" exit.3 refers to the following text: Falls die Beendigung eines Prozesses eine Prozessgruppe verwaisen lässt und wenn jedes Mitglied der neu verwaisten Prozessgruppe gestoppt wird, wird ein \fBSIGHUP\fP\-Signal gefolgt von einem \fBSIGCONT\fP\-Signal an jeden Prozess in der neu verwaisten Prozessgruppe gesendet werden. Eine verwaiste Prozessgruppe ist eine, in denen der Elternprozess eines jeden Mitglieds der Prozessgruppe entweder selbst auch Mitglied der Prozessgruppe oder Mitglied einer Prozessgruppe in einer anderen Sitzung sind (siehe auch \fBcredentials\fP(7)). .SH "SIEHE AUCH" \fBgetuid\fP(2), \fBsetsid\fP(2), \fBtcgetpgrp\fP(3), \fBtcsetpgrp\fP(3), \fBtermios\fP(3), \fBcredentials\fP(7) .SH KOLOPHON Diese Seite ist Teil der Veröffentlichung 4.16 des Projekts Linux\-\fIman\-pages\fP. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter \%https://www.kernel.org/doc/man\-pages/. .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother , Helge Kreutzmann , Martin Eberhard Schauer und Mario Blättermann erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an .