Bash

如何獲取shell腳本中最後執行的命令的pid?

  • January 16, 2020

我想要一個這樣的shell腳本:

my-app &
echo $my-app-pid

但是我不知道如何獲取剛剛執行的命令的pid。

我知道我可以使用jobs -p my-app命令來grep pid。但是如果我想多次執行shell,這個方法是行不通的。因為工作規範是模棱兩可的。

最後執行的命令的 PID 在$!shell 變數中:

my-app &
echo $!

獲取PID

#!/bin/bash
my-app &
echo $!

保存PID在變數中:

#!/bin/bash
my-app &
export APP_PID=$!

將所有實例保存PID在文本文件中:

#!/bin/bash
my-app &
echo $! >>/tmp/my-app.pid

保存輸出、錯誤和PID單獨的文件:

#!/bin/bash
my-app >/tmp/my-app.log 2>/tmp/my-app.error.log &
echo $! >>/tmp/my-app.pid

echo "my-app PID's: $(cat /tmp/my-app.pid)"

引用自:https://unix.stackexchange.com/questions/30370