Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 列出进程ID的祖先和后代_Linux_Bash_Unix_Process_Parent - Fatal编程技术网

Linux 列出进程ID的祖先和后代

Linux 列出进程ID的祖先和后代,linux,bash,unix,process,parent,Linux,Bash,Unix,Process,Parent,我正在创建一个程序,它接受一个进程ID,并将其名称作为网络连接列出 echo '===========================' echo 'please enter a process ID: ' read pidN ps -p $pidN|awk '{print $1, $4}' echo '===========================' echo 'here are the network connections for: ' $pidN sudo netstat -p|

我正在创建一个程序,它接受一个进程ID,并将其名称作为网络连接列出

echo '==========================='
echo 'please enter a process ID: '
read pidN
ps -p $pidN|awk '{print $1, $4}'
echo '==========================='
echo 'here are the network connections for: ' $pidN
sudo netstat -p|grep $pidN

echo '==========================='
echo 'The Parent Process ID: '
ps -p ${pidN:-$$} -o ppid=
下一步是获取用户输入的ID,并查找该ID的3个父进程和该ID的3个子进程

我假设我需要创建一个for循环来递归地获取父进程和子进程,但是我不确定这将如何实现

谁能告诉我应该从哪里开始,或者如何开始


非常感谢

看看
pstree
这看起来像是一个家庭作业问题。不过,这个
perl
代码片段应该可以让您开始学习<代码>ps-ef | perl-e'while(){@p=split;$ppid{$p[1]}=$p[2]}用于$i(排序(键(%ppid)){for($i;int($i)>0;$i=$ppid{$i}{print“$i=>”;}print“\n”}。这可能不适用于所有系统,但我在Ubuntu 17.04和Solaris 7上进行了测试。这是一个注释,因为它没有回答问题。看看
pstree
,这看起来像是一个家庭作业问题。不过,这个
perl
代码片段应该可以让您开始学习<代码>ps-ef | perl-e'while(){@p=split;$ppid{$p[1]}=$p[2]}用于$i(排序(键(%ppid)){for($i;int($i)>0;$i=$ppid{$i}{print“$i=>”;}print“\n”}。这可能不适用于所有系统,但我在Ubuntu 17.04和Solaris 7上进行了测试。这是一个评论,因为它没有回答问题。