获取 pid、给出 cmd 名称、网络连接、进程树、父级/祖级/子级的脚本

获取 pid、给出 cmd 名称、网络连接、进程树、父级/祖级/子级的脚本

可以,然后呢

我需要编写一个脚本,它将 pid 作为参数,并提供命令名称、与进程相关的各种网络连接,并且还将提供最多三个祖先进程和最多三代后代进程的信息。

我不想要这个问题的答案,但我确实想要一些指导,告诉我如何最好地让自己走上正确的道路来完成这个任务。

这就是我开始做的:

#!/bin/bash
#get pid from user
PID=$1
#echo pid and find a way to describe process to user
echo $PID #whatever it is = #whatever the command name is
#network portion
sudo netstat -p grep $PID
#this return information related to the process itself
ps -ef f|egrep "(UID|$PID)"

最后一行代码至少会返回一些对我来说有价值的东西:我可以获得一些与流程相关的信息,树状层次结构等等。

我不具备很多技术知识,所以我知道这段代码对于这项任务来说是否看起来很糟糕/无法使用。如果我需要从头开始并提出不同的想法,我会的。任何帮助或指导将不胜感激。

答案1

您可以通过以下方式获取父进程的PID:

PID=1234
ps -o ppid --no-headers -p "$PID"

或与

awk '/^PPid:/ { print $2 }' /proc/$PID/status

你可以将它放入一个变量中

PPID="$(awk '/^PPid:/ { print $2 }' /proc/$PID/status)"

相关内容