我正在使用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不是很熟悉,因为我知道它是一个功能有限的小发行版。