询问前已解决:cat /proc/1111/status | grep PPid
答案1
命令行:
ps -o ppid= -p 1111
功能:
ppid () { ps -p ${1:-$$} -o ppid=; }
别名(函数可取的):
alias ppid='ps -o ppid= -p'
脚本:
#!/bin/sh
pid=$1
if [ -z $pid ]
then
read -p "PID: " pid
fi
ps -p ${pid:-$$} -o ppid=
如果没有为函数或脚本提供 PID,它们默认显示当前进程的 PPID。
要使用别名,必须提供 PID。
答案2
要打印PPID
所有进程的父 ID(),请使用以下命令:
ps j
对于单个进程,只需传递 PID,例如:ps j 1234
。
要仅提取值,请按 过滤输出awk
,例如:
ps j | awk 'NR>1 {print $3}' # BSD ps
ps j | awk 'NR>1 {print $1}' # GNU ps
要列出所有父级的 PID,请使用pstree
(如果没有,请安装):
$ pstree -sg 1234
systemd(1)───sshd(1036)───bash(2383)───pstree(3007)
要获取当前进程的父 PID,请使用echo $$
。
答案3
这是我学习、忘记、重新学习、重复的事情之一。但它很有用。pstree 命令的 's' 标志显示一棵树,其叶子位于 N 处:
pstree -sA $(pgrep badblocks)
systemd---sudo---mkfs.ext4---badblocks
答案4
读取 /proc/$PID/status。可以轻松编写脚本:
/bin/sh #!/bin/sh 复制代码 价格=1美元 如果 [ -z "$P" ]; 那么 读 P 菲 猫/proc/“ $ P” /状态|复制代码grep -o “[0-9]*”