免费注册 查看新帖 |

Chinaunix

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

popen中创建中的子进程id,如何获取? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-03 10:57 |只看该作者 |倒序浏览
利用popen去执行一个command,但是因为command执行的时间可能长,
我想让他终止,但是又不知道他的id,如何获取呢?

是不是也可以使用其它的api,去执行command,同时又可以容易去终止该command?



请大家多多指教

论坛徽章:
0
2 [报告]
发表于 2007-08-03 11:09 |只看该作者
好像不大容易,何不用fork+exec

论坛徽章:
0
3 [报告]
发表于 2007-08-03 11:13 |只看该作者
popen我也没找到获取子进程id的便捷方法

麻烦点的可以fork, exec... , kill组合拳代替popen

出个馊主意,主进程创建新的进程组,自己特殊处理一种终止信号,popen,在需要终止command的时候向进程组发送该终止信号。。。

馊主意永远是馊主意,副作用有点大

论坛徽章:
0
4 [报告]
发表于 2007-08-03 11:15 |只看该作者
但是,我们想知道command的输出信息,不使用popen的话,其它的能实现么?

论坛徽章:
0
5 [报告]
发表于 2007-08-03 11:27 |只看该作者
崩溃,popen不就是pipe, fork, exec, read/write的组合吗?

论坛徽章:
0
6 [报告]
发表于 2007-08-03 11:36 |只看该作者
不好意思哦,popen不大了解,看了一下源代码,好像逻辑还挺复杂。


自己要把popen的功能再实现,程序风险不是又加大了么?

论坛徽章:
0
7 [报告]
发表于 2007-08-03 11:40 |只看该作者
风险是挺大,同病相怜啊,当初一怕风险,二是比较懒,才想了那个馊主意

论坛徽章:
0
8 [报告]
发表于 2007-08-03 16:31 |只看该作者
如果通过popen去执行一个mount命令,如何知道这个mount命令是否正在执行呢?


ps -ef|grep mount能看到有mount在执行,但不定就是popen打开的吧?

论坛徽章:
0
9 [报告]
发表于 2007-08-03 17:12 |只看该作者
popen成功了,mount就在执行或执行过了(mount出错是另外一码事),不用再去判断

论坛徽章:
0
10 [报告]
发表于 2007-08-03 17:48 |只看该作者
我们需要知道mount是否执行成功了,如果等待一定时间还不成功,需要其他处理的。
所以得知道mount是否一直在执行,不是是否执行成功。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP