我有兩個進程具有相同的名稱但PID不同。我需要找出這兩個中具有最低PID的進程並殺死它。我怎麼做?使用Unix中最低的PID來殺死進程
2
A
回答
6
有點做作,但是這不會把戲(使用bash爲例):
pidof bash | grep -o "[0-9]*" | sort -n | sed '1q'
或
pidof bash | tr -s " " "\n" | sort -n | sed '1q'
記住, 「最低PID」 並不真正意味着除非你沒有足夠的流程從最大值到最低值再次使用,否則任何與啓動順序有關的事情。一個更好的(也可能更復雜的)方法是殺死較舊的進程或較新的進程,具體取決於哪一個是壞的。
您可以在這裏找到一些靈感How do you kill all Linux processes that are older than a certain age?
0
Unix或* nix中有/ proc目錄?
如果您有/ proc支持,請通過/ proc/[0-9] +/cmdline解析以查找其命令與您正在查找的進程相匹配的進程;目錄名稱(在/ proc之後)是id。
opendir()和readdir()將是您通過目錄解析的工具。
如果你沒有/ proc支持,你可以popen(「ps -options here」,「r」);讀取ps的輸出(以及適合您的系統的任何選項)來解析整個進程列表。
相關問題
- 1. 通過PID在Erlang中殺死進程
- 2. 如何殺死一個PID在PID文件中的進程?
- 3. 殺死進程殺死其他進程
- 4. 獲取殺死我的應用程序的進程的PID
- 5. 我使用PID創建一個殺死進程
- 6. 殺死Unix壓縮過程
- 7. 殺死進程
- 8. 殺死進程
- 9. 殺死在while循環後臺進程中創建的PID
- 10. 如何用wmic找到進程pid並用taskkill殺死它
- 11. Vbscript中的殺死進程
- 12. 殺死由pid文件
- 13. 殺死不會殺死進程
- 14. Ubuntu:如何殺死一個改變其PID的進程?
- 15. PHP獲得進程的PID並將其殺死
- 16. 殺死mysqld進程
- 17. SIGKILL殺死進程
- 18. VB.NET - 殺死進程
- 19. 用python殺死進程
- 20. 如何獲得unix中殺死進程的返回碼?
- 21. 安全使用SIGTERM殺死postgres進程?
- 22. get-wmiobject使用powershell殺死進程
- 23. 使用參數VBScript殺死進程
- 24. 殺死產生進程的進程
- 25. 如何使用VisualVM或使用unix命令殺死Java線程?
- 26. 無法殺死以spawn開頭的PID
- 27. 在子進程中使用紅寶石殺死分叉進程
- 28. Android Process.killProcess(pid)是否會殺死進程或整個應用程序?
- 29. windows批量殺死進程
- 30. 無法殺死Postgres進程
是否需要自動化解決方案?或者你只是想看看ps的輸出來獲得pid? – 2011-06-14 11:35:01