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

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

我有一个包含以下代码的 bash 脚本文件脚本

./xxx_program arguments &
PID=$!
echo $PID
kill -INT $PID

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

我想知道是否有办法获取 xxx_program 的 PID?提前谢谢

答案1

有多种方法:

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

答案2

你可以使用

pidof xxx_program 

如果这是进程的名称。(必须是完整的进程名称以及如何调用它,包括任何选项或命令行路径)

相关内容