killpg(2) sendet ein Signal zu einer Prozessgruppe

ÜBERSICHT

#include <signal.h>

int killpg(int pgrp, int sig);

Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

killpg():
_XOPEN_SOURCE >= 500
    || /* Seit Glibc 2.19: */ _DEFAULT_SOURCE
    || /* Glibc-Versionen <= 2.19: */ _BSD_SOURCE

BESCHREIBUNG

killpg() sendet das Signal sig an die Prozessgruppe pgrp. In signal(7) finden Sie eine Liste der Signale.

Falls pgrp 0 ist, sendet killpg() das Signal an die Prozessgruppe des aufrufenden Prozesses. (POSIX sagt: Falls pgrp kleiner oder gleich 1 ist, ist das Verhalten undefiniert.)

Damit ein Prozess ein Signal senden darf, muss er entweder privilegiert sein (unter Linux muss er die CAP_KILL-Capability besitzen) oder die echte beziehungsweise effektive Benutzer-ID des sendenden Prozesses muss der realen oder gespeicherten SUID (gesetzte Benutzer-ID) des Zielprozesses entsprechen. Im Fall von SIGCONT reicht es, wenn die sendenden und empfangenden Prozesse zur gleichen Sitzung gehören.

RÜCKGABEWERT

Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER

EINVAL
sig ist keine gültige Signalnummer.
EPERM
Der Prozess verfügt nicht über das Recht, das Signal an einen der Zielprozesse zu senden.
ESRCH
Es kann kein Prozess gefunden werden, der der Prozessgruppe pgrp angehört.
ESRCH
Als Prozessgruppe wurde 0 angegeben, der sendende Prozess hat aber keine Prozessgruppe.

KONFORM ZU

POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD (killpg() erschien erstmals in 4BSD).

ANMERKUNGEN

Es gibt mehrere Unterschiede zwischen den Rechteprüfungen in Systemen vom BSD- und vom SystemV-Typ. Siehe das POSIX-Grundprinzip für kill(). Ein nicht von POSIX genannter Unterschied betrifft den Rückgabewert EPERM: BSD beschreibt, dass kein Signal gesandt wird und EPERM zurückgegeben wird, wenn die Rechteprüfung für mindestens einen Zielprozess fehlschlägt, während dies bei POSIX EPERM nur der Fall ist, wenn die Rechteprüfung für alle Zielprozesse fehlschlägt.

Unterschiede C-Bibliothek/Kernel

Auf Linux ist killpg() als eine Bibliotheksfunktion implementiert, die kill(-pgrp, sig) aufruft.

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 4.06 des Projekts Linux-man-pages. 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/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <[email protected]>, Martin Schulze <[email protected]>, Chris Leick <[email protected]> und Mario Blättermann <[email protected]> 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 <[email protected]>.