當我運行bash腳本時,我在ps列表中獲取兩個條目,其中一個是其他子項。 我的腳本只包含一個命令Bash腳本運行兩個pid
test.sh
sleep 20
pidof test.sh
2494 2493
我怎樣才能得到父PID
當我運行bash腳本時,我在ps列表中獲取兩個條目,其中一個是其他子項。 我的腳本只包含一個命令Bash腳本運行兩個pid
test.sh
sleep 20
pidof test.sh
2494 2493
我怎樣才能得到父PID
當你運行該腳本,正在創建兩個過程。第一個是運行腳本的bash解釋器。 sleep
另一方面是另一個二進制文件(通常在/ bin中),因此需要啓動一個新進程。 (儘管進程命名似乎在不同的系統上有所不同;當在我的測試系統上運行時,沒有一個進程被test.sh命名,只是bash和sleep)。
獲取父進程ID爲一個或多個進程(通過ID或名字),你可以使用ps
:
$ ps -p 6194 -o ppid=
6187
$ ps -p 6194,6748 -o ppid=
6187
6747
$ ps -C bash -o ppid=
6187
6747
6782
在一個CentOS系統「的pidof」只返回父進程。要獲得孩子(ren),您可以使用'pstree':
$ pidof test.sh
22220
$ pstree -p 22220
mytest(22220)---sleep(22223)