Bash
如何獲取shell腳本中最後執行的命令的pid?
我想要一個這樣的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)"