正确获取进程ID

时间:2013-07-16 15:27:15

标签: bash process terminal

有时候我需要遵循一个过程而且总是找到一个执行pid=$1的bash脚本。据我所知,它应该获取我发送到我创建的第一个shell实例的进程ID,该实例正在运行该特定进程,我以后可以使用它(例如,杀死它,或者跟随内存使用,或者其他)。 pid=$0应获取当前实例(bash)和pid=$!最新实例。 (如果我错了,请纠正)

问题是:每当我需要运行pid=$1命令时,pid什么也得不到,echo $pidecho ${pid}打印并清空,我总是需要一种方式使用pid=$!代替它,因为它是唯一获取我的进程ID的东西。有谁知道为什么我的终端表现如此? (它发生在Linux Mint或Fedora中)

1 个答案:

答案 0 :(得分:4)

$$应该为您提供脚本pid

$PPID应该给你调用者(父)pid


评论的回答

sleep 100 &
sleeppid=$!
echo "PID=$sleeppid"