社区
Linux/Unix社区
帖子详情
如何让子进程在父进程结束时(任意情况)也自动结束?
candc
2004-04-13 08:08:09
另外,我只知道该进程的名字,我怎么在另一个程序开始运行时知道之前所述进程是否在运行?目前知道的办法是:ps,然后查找。谁有高见?多谢!
...全文
838
7
打赏
收藏
如何让子进程在父进程结束时(任意情况)也自动结束?
另外,我只知道该进程的名字,我怎么在另一个程序开始运行时知道之前所述进程是否在运行?目前知道的办法是:ps,然后查找。谁有高见?多谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
firstyi
2004-04-14
打赏
举报
回复
mark
hiphop
2004-04-14
打赏
举报
回复
9 给定一个进程号,我怎样知道它是个正在运行的程序?
=====================================================
使用‘kill()’函数,而已0作为信号代码(signal number)。
从这个函数返回有四种可能的结果:
* ‘kill()’返回0
- 这意味着一个给定此进程号的进程退出,系统允许你向它发送信号。该进
程是否可以是僵死进程与不同系统有关。
* ‘kill()’返回-1,‘errno == ESRCH’
- 要么不存在给定进程号的进程,要么增强的安全机制导致系统否认它的存
在。(在一些系统上,这个进程有可能是僵死进程。)
* ‘kill()’返回-1,‘errno == EPERM’
- 系统不允许你杀死(kill)这个特定进程。这意味着要么进程存在(它又可能是
僵死进程),要么严格的增强安全机制起作用(比如你的进程不允许发送信号
给*任何人*)。
* ‘kill()’返回-1,伴以其它‘errno’值
- 你有麻烦了!
用的最多的技巧是认为调用“成功”或伴以‘EPERM’的“失败”意味着进程存
在,而其它错误意味着它不存在。
如果你特别为提供‘/proc’文件系统的系统(或所有类似系统)写程序,一个替换
方法存在:检查‘proc/进程号’是否存在是可行的。
longenic
2004-04-14
打赏
举报
回复
waitpid 是只针对子进程而言,
我想可以用信号实现, 但这个信号要自己定义,像用UNIX信号里面的处定义信号,SIGUSR,或SIGSUR2 ,当父进程退出的时候就发出自定义的信号,
如果是父进程非正常退出, 它也会发出一个SIGTERM的信号, 进行相应的处理就可以了
candc
2004-04-14
打赏
举报
回复
对,我想做到的就是想让子进程知道父进程的退出,这有可能是异常错误导致的。不过,我想楼上说的waitpid还真的可以考虑,谢谢!另外,什么叫异步使用啊?
leonf
2004-04-13
打赏
举报
回复
对了是任何情况退出啊,呵呵,不好意思没看清楚。
在子进程里面异步使用waitpid()实现监控父进程。
leonf
2004-04-13
打赏
举报
回复
父进程总有子进程的ID吧,发一个signal给子进程让他退出就好了。
truebjhz
2004-04-13
打赏
举报
回复
可以用进程间同步和通信的机制实现啊。
比如,子进程运行的过程中监视一个event,父进程结束时先置一下这个event,
子进程检测到后就退出。
当然你要说父进程出现了CORE之类的非法操作,那就难说了,这时应该想办法解决父进程的问题。
event是windows上的叫法,在linux上我不知道叫什么,但是方法应该是一样的。
信号量SIGCHLD的使用,如何让
父
进程
得知
子
进程
执行
结束
,如何让
父
进程
区分多个
子
进程
的
结束
本文介绍了SIGCHLD信号在
父
进程
与
子
进程
交互中的作用,通过示例程序展示了当
子
进程
结束
或停止
时
,如何触发
父
进程
的信号处理函数。文中提到,
父
进程
可以通过signal函数注册信号处理函数,并在
子
进程
结束
时
执行。同
时
,讨论了如何在
父
进程
中通过wait或pause函数确保正确处理多个
子
进程
的
结束
。最后,提到了信号处理函数的调用次数的不确定性及信号合并的
情况
。
4.
父
进程
和
子
进程
本文介绍了Unix/Linux系统中
进程
创建的基本原理,包括
父
进程
如何通过fork()系统调用创建
子
进程
,以及
子
进程
如何通过exec()调用执行新的程序。此外还讲解了
父
进程
如何通过wait函数来等待
子
进程
结束
,并探讨了
进程
组ID的概念。
父
进程
与
子
进程
本文探讨了
进程
的概念及其引入背景,详细分析了
父
进程
与
子
进程
之间的关系,包括创建
子
进程
的目的、
子
进程
的创建方式及管理,以及
父
进程
结束
后
子
进程
的处理方式。
unix中
父
进程
如何获取
子
进程
的终止状态
本文聚焦Unix系统,介绍
父
进程
获取
子
进程
终止状态的方法。先阐述
子
进程
创建与终止,指出
父
进程
可通过wait族函数获取状态。接着详细介绍wait、waitpid、waitid、wait3和wait4函数,包括参数、返回值及使用
情况
,还给出wait函数参考代码。
linux
父
子
进程
结束
,Linux下让
父
进程
结束
后,
子
进程
自动
结束
本文介绍了一个在Linux环境下优雅地管理
子
进程
的方法。通过使用prctl函数设置PR_SET_PDEATHSIG属性,使得
父
进程
退出
时
子
进程
能
自动
接收到指定信号并随之退出,解决了传统方法的不足。
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章