首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用fork获取新创建的子进程的进程名和进程id pid?

如何使用fork获取新创建的子进程的进程名和进程id pid?
EN

Stack Overflow用户
提问于 2014-04-07 17:44:10
回答 2查看 1.5K关注 0票数 0

我使用fork创建子进程。现在我想知道使用putty的子进程的名称和进程id。我需要使用哪个命令来获取此信息。我正在尝试ps和pstree。如何在创建新的子进程时给出子进程的名称?是否可以使用任何linux/unix命令获取此信息?

我想知道孩子多长时间是活跃的,什么时候被终止。子进程的平均定时信息。

代码语言:javascript
复制
root@mx6q:~# ps aux|grep "childprogram"
ps: invalid option -- 'a'
BusyBox v1.20.2 (2014-03-13 11:47:37 CET) multi-call binary.

Usage: ps

Show list of processes

        w       Wide output
        l       Long output
        T       Show threads

root@mx6q:~#



root@mx6q:~# ps | grep "childprogram"
 1407 root      1908 S    grep childprogram
root@mx6q:~# ps | grep "childprogram"
 1409 root      1908 S    grep childprogram
root@mx6q:~# ps | grep "childprogram"
 1411 root      1908 S    grep childprogram

对于父级:

代码语言:javascript
复制
root@mx6q:~# readlink /proc/670/exe
.asoundrc                   .gvfs/
.bashrc                     adit-30-09-2014.vnclicense
.gstreamer-0.10/            enable_usb_dr_host_mode.sh
root@mx6q:~# readlink /proc/670/exe

但是我在/proc/里面找不到孩子pid?什么意思?

EN

回答 2

Stack Overflow用户

发布于 2014-04-07 22:08:08

您将其标记为C,并提到您是派生新流程的参与者,因此您在派生子进程的父进程中拥有所有这些信息,但是您需要修改代码来捕获它。

你有孩子的pid,因为它是由fork.

  • You在父进程中返回的,(可能)有孩子的名字,因为在大多数情况下,你是写这个exec调用的人。如果没有,你可以使用孩子的pid来readlink /proc/<pid>/exe.

  • If你需要知道孩子在运行时的统计信息,你可以使用RUSAGE_CHILDREN选项调用getrusage

  • 如果你只是想要孩子完成后的统计信息,你可以用wait4

等待它

票数 1
EN

Stack Overflow用户

发布于 2014-04-07 21:29:30

试试这个:

代码语言:javascript
复制
$ ps xf

并分析输出,并使用grep sed和/或awk创建一些过滤器。

我对BusyBox不是很熟悉,因为我知道它是一个功能有限的小发行版。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22908796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档