永发信息网

linux 关于 获取父进程PID问题

答案:3  悬赏:70  手机版
解决时间 2021-03-03 12:27
背景条件:如果 我知道一个程序名 当我启动这个程序之后 这个程序有fork许多子进程 子进程可能调用类似system()调用外部命令的函数
问题:
我如何通过程序名 获取这个拥有许多子进程的程序的PID 也就是这些子进程的父进程PID

方法越简单越好。
也就是说 不管一个程序有多少子进程。通过什么方法 在只有一个程序名(带全路径的程序名,确定唯一程序,防止有其他路径重名程序)的前提下 找到这个程序运行时的pid
最佳答案
读取/proc/pid/status文件,对于一个进程可以

# cat /proc/(pidof $(target_process))/status |grep "PPid"
全部回答
if parent program is /usr/bin/tail, you excecut it as "/usr/bin/tail -f x.log", you can get its pid by following sample: yibox ~ # ps -ef | grep '\/usr\/bin\/tail' | gawk '{print $2}' 5399
getppid() 获取父进程 id, getpid() 获取当前进程 id. 比如 int main() { int pid = fork(); if (pid == 0) { // child printf ("parentid is %d\n", getppid()); } esle { printf("i'm parent, id %d\n", getpid()); wait(null); } return 0; } 再就是程序编译没错,但是运行时出现“实时信号 2” 没有源码,谁也帮不上你。 你可以用 gdb去调试。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
初学者关于做静态页面的问题:一个标题栏上有
气门室盖漏油怎么处理好
怀孕五十天左右不知道作了上腹部C丅孩子能要
爱苗食品公司这个地址在什么地方,我要处理点
一条公路已经修了四分之三,还有60km没修,这条
白云边三年,最低端的白云边酒,怎么样
喜市多华港门市便利店地址在什么地方,想过去
吉首到常德高速费多少
本人用DS90C385A芯片做了一块TTL转LVDS的转接
写一段关于艾弗森的评论
alevel成绩有效期是多久?
温州城休闲足疗我想知道这个在什么地方
显微镜 若切片放反 会导致转换高倍镜后看不清
河南籍画家曹大经的字画的价格是多少?(多少钱
下列哪种动物不是我国特有的CA. 扬子鳄B. 白
推荐资讯
三碗面吃吧二部我想知道这个在什么地方
跑步的时候带哪种耳机比较好啊?最好不会掉
mysql 有没有取整函数?急
我是河北邢台这里,想五一去看海,想到去三亚
韵达快递单号怎么回收
把下面的数用科学计数法表示
婚内出轨可以原谅吗
已知x-1的绝对值+y的平方-4y+4=0,求(x+y)的x
从烟台到青州 在潍莱高速哪个收费站下
你好我现在有欠款预期上征信报告了一个多月能
俩个开关控制俩个灯,现在单按一个不会亮,必
要写一张便条 情景:妈妈说放学后和朋友踢足
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?