c语言 - 如何使用fork获取新创建的子进程的进程名称和进程ID pid?



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

我想知道子进程处于活动状态的时间以及何时终止。 子进程的平均计时信息。

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

对于家长:

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?什么意思?

您将其标记为 C,并提到您是分叉新进程的参与者,因此您在分叉子进程的父进程中可以使用所有这些信息,但您需要更改代码才能捕获它。

  • 您有子项的 pid,因为它由 fork 在父项中返回。

  • (可能)有孩子的名字,因为在大多数情况下,您是写exec电话的人。 如果没有,用孩子的pid你可以readlink /proc/<pid>/exe.

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

  • 如果您只想在完成后获得孩子的统计数据,您可以等待
  • 4

试试这个:

$ ps xf

并分析输出并使用 grep sed 和/或 awk 制作一些过滤器。

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

相关内容

  • 没有找到相关文章

最新更新