我想測試一些錯誤,為此我需要有 PID 大於 99999 的情況。有任何想法嗎?
答案1
您可以執行類似的操作來啟動具有所需 PID 的進程。
while true; do bash -c '[[ "$$" == 99999 ]] && echo PID is 99999'; done
您可以等到獲得所需的 PID,然後可能將語句替換echo
為您實際需要測試的內容。
參考
編輯
為什麼PID號會成長?是因為您一遍又一遍地運行不同的 bash 實例嗎?
我相信你所說的就是正在發生的事情。這可以簡單地測試如下。
while true; do bash -c 'echo $$' ; done
我們可以看到 PID 不斷增加,從 的手冊頁中bash
我看到,
-c string 如果存在 -c 選項,則從字串讀取命令。如果字串後面有參數,它們將被指派給位置參數,從 $0 開始。
因此,根據我的理解,echo
上述測試中的每個語句都作為一個單獨的進程執行,這就是為什麼我們可以看到 PID 正在遞增。
答案2
無論你想做什麼,很可能都有更好的方法,但如果你決心像
while [[ 1 == 1 ]]; do sleep 10000& done
將啟動許多sleeps
,但可能需要一段時間才能啟動所有。當你有足夠的進程時,只需點擊Ctrl-C
退出while
循環即可。