2012-05-24 104 views
8

如果我作爲孩子啓動bash腳本,我可以通過使用$$將其自己的pid傳遞給父級。有什麼方法可以知道已啓動程序的pid嗎?

有沒有辦法找到我從腳本啓動的背景 像節目的PID:

ping x.x.x.x & 

那是什麼平的PID?

(我只希望我正確表達我自己......我的英語不是最好的)

PS。我在尋找一個簡單而乾淨的解決方案,我能想象這樣的:

ping -t10000 -W10 x.x.x.x & 
then 
ps ax | grep 'ping -t10000 -W10 x.x.x.x'$ 

,但太複雜了,還甚至是我使用的開關個性化是不乾淨的,它可能趕上另一個進程在系統中

+0

'pgrep',如果可用,優於'grep'ping'ps'。 –

回答

17

變量$!具有您開始的最後一個後臺進程的PID。

+0

謝謝! 這解決了它...和(臉紅)我不知道我是如何錯過 – THESorcerer

+1

@THESorcerer:不要忘記標記答案爲接受。 –

6

使用此命令:$!執行完所需的PID命令後。這意味着,儘管您需要在命令後面使用&符號(&),才能在後臺啓動它。例如:

my_command & CMDPID=$! 
echo "$CMDPID" 
相關問題