免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5233 | 回复: 6
打印 上一主题 下一主题

信号如何发给一个指定进程组? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-17 17:44 |只看该作者 |倒序浏览
关于作业控制的几个问题。

1, 为什么进程组长不允许用setsid建立一个新的会话? 是因为进程组不能转移到其它会话中?还是没有办法确定一个新的进程组长?
2, kill在pid为负数的时候将信号发送给当前会话的所有进程组?可是没有办法发送给一个指定进程组?

谢谢

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
2 [报告]
发表于 2009-11-17 19:02 |只看该作者
kill(pid, sig)
   pid < -1
   The signal is sent to all thread groups of the processes in the process group -pid.

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
3 [报告]
发表于 2009-11-17 19:06 |只看该作者
Linux System Programming:
Chapter 9
   killpg              P312
不过这个可能在其他系统上没有

论坛徽章:
0
4 [报告]
发表于 2009-11-18 11:56 |只看该作者
原帖由 openspace 于 2009-11-17 19:02 发表
kill(pid, sig)
   pid < -1
   The signal is sent to all thread groups of the processes in the process group -pid.


谢谢你的提醒,不过好象kill这个工具并没有实现这个功能? 我是做测试的时候发现的,也许需要自己写一个工具?

killpg确实没有,请问你用的是哪个发行版。我在公司是用的debian/squeeze(没有),家里是gentoo,没有看过

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
5 [报告]
发表于 2009-11-18 12:18 |只看该作者

回复 #4 danielhf 的帖子

Linux System Programming这本书中提到的
kill不行?没看过POSIX规范,不知道规范里是否这样定义的

论坛徽章:
0
6 [报告]
发表于 2009-11-20 13:24 |只看该作者

回复 #4 danielhf 的帖子

自己看文档比发帖问要快得多啦

如果是系统调用,ls已经有人给出了pid为负的使用方法
也有killpg()可用
killpg是posix标准中的,怎么会没有呢
http://www.kernel.org/doc/man-pa ... /man2/killpg.2.html

如果是utils程序
man 1 kill就会发现还有pkill这个东东
pkill -g pgrp
再说就算没有,用pgrep+kill也很方便

论坛徽章:
0
7 [报告]
发表于 2009-11-20 13:42 |只看该作者

回复 #1 danielhf 的帖子

没看到第一个问题

第一个问题我想其实很简单,就是为了保证不跟setsid的定义冲突

setsid()  creates  a new session if the calling process is not a process group leader.  The calling process is the leader of the new session, the process group leader of the new process group, and has no controlling tty.  The process group  ID and  session  ID  of the calling process are set to the PID of the calling process.  The calling process will be the only process in this new process group and in this new session.


其定义要求调用返回后这个进程是新的group和session中唯一的进程
所以如果调用者已经是一个group leader了,那就没法保证这个group中有没有其他进程(如果group中有其他进程怎么办?难不成kill掉?)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP