我的系統上運行著兩個 python 程序,它們分別稱為programx
和program y
。
我想取得程式的 pid y
,但不是x
我的 bash 腳本的 pid。使用時pgrep python
,我得到了它們兩個的pid,但不知道哪個是哪個。
有什麼想法如何在 bash 腳本中區分兩者之間的區別嗎?
答案1
-f
您可以使用switch to 來匹配參數清單pgrep
(嘗試man pgrep
閱讀更多內容)。
pgrep -f x
應該只產生程序x
和
pgrep -f y
分別是唯一的程序y
。
作為替代方案,如果x
和y
不夠唯一並且以太多行結尾,您可以使用ps
和grep
來獲得更多選項
ps ax | grep 'python x' | grep -v grep | awk '{print $1}'
這會
- 列出所有相關進程
- grep 尋找其中包含的內容
python x
。在這裡您可能需要新增路徑說明符,例如python ./path/to/x
- 從匹配進程清單中刪除 grep 命令本身
- 僅列印第一列,即 pid。