如何在 Bash 中获取最近启动的进程的 PID

Yur*_*ira 3 command-line bash scripts

我有一个 bash 脚本文件,其中包含以下代码script.sh

./xxx_program arguments &
PID=$!
echo $PID
kill -INT $PID
Run Code Online (Sandbox Code Playgroud)

我想要做的是启动一个程序“ xxx_program”,然后将其存储PID$PID变量上。但相反,我一直得到“ bash”本身的 PID,而不是我打开的程序,这导致xxx_program 仍在运行时kill -INT $PID退出script.sh。注意xxx_program打开,但我只是得到了错误的 PID。

我想知道有没有办法得到xxx_program的PID?提前致谢

use*_*325 6

有多种方式:

  1. 让脚本自己写它的 pid。echo $$ > /tmp/my.pid在脚本中包含行。
  2. pidof script_name
  3. ps -ef | grep script_name | tr -s ' ' | cut -d ' ' -f2