KILLPG

KILLPG

章节:Linux 程序员手册 (2)
更新:2010-09-20

易美翻译 翻译 本页


 

名字

killpg - 发送信号给进程组

概要

#include <signal.h>

int killpg(int pgrp, int sig);

glibc 需要特性测试宏(参看 feature_test_macros(7)):

killpg():
_BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

描述

killpg() 发送信号 sig 给进程组 pgrp。见 signal(7) 里的可用信号列表。

如果 pgrp 是 0,killpg() 发送信号给调用进程的进程组。(POSIX 说:如果 pgrp 是小于或等于 1,其行为是未定义的。)

当一个进程有权限发送信号时,它必须是一个特权进程(Linux:有 CAP_KILL 能力),或者发送进程的真实或有效用户 ID 必须等于目标进程的真实或保存设置用户ID。对于信号 SIGCONT 只要求发送和接收进程属于同一个会话。

返回值

成功时,返回0。错误时,返回 -1,并把 errno 设置为合适的值。

错误

EINVAL
sig 不是一个有效的信号编号。
EPERM
进程没有权限把指定信号发送给目标进程任何一个。
ESRCH
在指定的进程组 pgrp 里没有找到任何进程。
ESRCH
进程给出了 0 但是发送没有一个进程组。

遵循于

SVr4、4.4BSD(killpg() 函数首次出现在 4BSD)、POSIX.1-2001。

注意

在 BSD 风格的系统里和System V 风格的系统里有多个不同的权限检测。参考 POSIX 的 kill() 原理。POSIX 提及的不同与 EPERM 返回值有关:BSD 文档说没有信号被发送并且至少有一个目标进程没有权限时返回 EPERM;而 POSIX 则说当所有目标进程的权限检测失败返回 EPERM

在 Linux 系统里,killpg() 是作为一个库函数来实现的,它使用 kill(-pgrp, sig) 来完成工作。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值