如何获取后台运行的进程的 pid?

如何获取后台运行的进程的 pid?

我在用在后台运行进程的方法。

"$@" &>/dev/null &disown

我如何实现以下目标 -

  1. 获取背景pid
  2. 返回它以便可以在另一个脚本中使用它?

答案1

shell 可以使用最近启动的后台作业的进程 ID 作为$!

例如,您可以将其输出到文件或标准输出:

"$@" &>/dev/null &
disown

printf '%d\n' "$!" >background.pid

然后另一个脚本可能会

./first-script.sh some command line

thepid=$( <background.pid )

或者,如果第一个脚本仅将进程 ID 输出到标准输出,则第二个脚本可以

thepid=$( ./first-script.sh some command line )

相关内容