Linux中國

Linux有問必答:如何在腳本中獲取進程ID(PID)

在某些情況下,你也許想要知道運行中的子shell的PID。這個PID信息可以在不同的情況下使用。比如,你可以使用shell腳本的PID在/tmp下創建一個唯一的臨時文件。有時侯腳本需要檢測所有運行的進程,它可以從進程列表中排除自身的子shell。

在bash中,子shell進程的PID存儲在一個特殊的變數『$$』中。這個變數只讀,你不可以在腳本中修改它。比如:

#!/bin/bash

echo "PID of this script: $$"

上面的腳本會得到下面的輸出:

PID of this script: 6583

除了$$, bash shell還會導出其他的只讀變數。比如,PPID存儲子shell父進程的ID(也就是主shell)。UID存儲了執行這個腳本的當前用戶ID。比如:

#!/bin/bash

echo "PID of this script: $$"
echo "PPID of this script: $PPID"
echo "UID of this script: $UID"

輸出是:

PID of this script: 6686
PPID of this script: 4656
UID of this script: 1000

上面輸出中,PID每次執行都會變化。這個因為每次運行都會創建一個新的shell。另一方面,PPID每次都會一樣只要你在同一個shell中運行。

對於所有bash內置變數列表,參考man頁。

$ man bash

via: http://ask.xmodulo.com/process-id-pid-shell-script.html

譯者:geekpi 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國