如何從他的pid獲取進程名稱? 例如,我執行cat file1.txt,但我想知道cat命令及其參數,因爲它在系統中的pid。有沒有一個結構來確定它或類似的東西?任何想法?Linux中的pid進程名稱
回答
沒有任何通用的方法來做到這一點。每個操作系統都有不同的方式來處理它,有些非常困難。不過你提到Linux。使用Linux時,信息位於/ proc文件系統中。
要獲取進程ID 9999的命令行,請閱讀文件/proc/9999/cmdline
。
而要獲取進程ID 9999的進程名稱,請閱讀文件'/ proc/9999/comm'。 – 2013-07-05 15:02:16
問題是如何獲取進程名稱,而不是命令行。在我的SUSE上,爲kwrite進程輸入'head/proc/9999/cmdline',並返回:'kdeinit4:kwrite [kdeinit]'。如果我使用/ comm而不是/ cmdline,我會得到正確的結果:'kwrite'。 – Elmue 2015-04-21 11:01:28
POSIX C不支持給出一個標準API來獲取PID的進程名稱。
在Linux中,您可以通過LINUX Proc API獲取名稱:/ proc/$ PID/cmdline。並且代碼看起來像這樣:
const char* get_process_name_by_pid(const int pid)
{
char* name = (char*)calloc(1024,sizeof(char));
if(name){
sprintf(name, "/proc/%d/cmdline",pid);
FILE* f = fopen(name,"r");
if(f){
size_t size;
size = fread(name, sizeof(char), 1024, f);
if(size>0){
if('\n'==name[size-1])
name[size-1]='\0';
}
fclose(f);
}
}
return name;
}
如果你來這裏尋找解決方案在C#與單聲道工作,然後看看這個:http://stackoverflow.com/questions/29827331/workaround-for-bug-in-mono-wrong-process-processname-solved – Elmue 2015-04-23 15:32:38
爲了得到一個進程ID的進程名說9000,使用這個命令:
ps -p 9000 -o comm=
儘管這個問題已經回答了,我想加我2美分。
在我的情況下,當進程1111通過管道創建進程22222(至少這是我所聽到的)時,/ proc/2222/cmdline沒有給出正確的進程名稱,而是給出了類似1111_1的東西。我必須使用/ proc/2222/comm來獲取正確的進程名稱。
- 1. linux在內核中從pid獲取進程名稱
- 2. linux - 獲取進程的pid
- 3. 通過PID查找進程名稱
- 4. 通過PID獲取進程名稱
- 5. 改革進程名稱[0]在Linux中
- 6. 在Linux中更改進程名稱
- 7. 在Debian中顯示進程名稱和pid
- 8. 如何通過PID查找應用程序名稱(進程ID)
- 9. 獲取java進程的名稱而不是pid?
- 10. 因爲它是PID的進程在Linux中的所有權因爲它是PID
- 11. 如何從PID使用C獲取進程名稱
- 12. 從pid或句柄獲取進程名稱
- 13. 通過他的PID分析一個進程Linux內核編程
- 14. 如何捕獲從init.d運行的Linux守護進程的pid
- 15. 如何獲得具有類名稱的PID並終止獲得的進程
- 16. Coldfusion進程名稱
- 17. 如何通過在Mac OS X中提供進程名稱來獲取進程的PID?
- 18. 獲得子進程的PID
- 19. 如何在Linux下更改haskell進程的名稱
- 20. 如何殺死一個PID在PID文件中的進程?
- 21. Yocto Linux使用的Linker二進制名稱什麼是Yocto Linux使用的Linker二進制名稱
- 22. linux如何用pid獲取進程參數?
- 23. 在編寫Linux內核模塊時獲取用戶進程pid
- 24. 使用python啓動進程並獲取PID(Linux)
- 25. 在android中的聯繫進程名稱
- 26. android:進程和進程名稱
- 27. Linux叉:pid重用
- 28. Linux/Bash,使用ps -o按特定名稱獲取進程?
- 29. /proc/[pid]/pagemaps和/ proc/[pid]/maps | linux
- 30. 從子進程獲取PID
[通過PID獲取進程名稱]的可能重複(http://stackoverflow.com/questions/4189717/get-process-name-by-pid) – Hasturkun 2013-03-21 11:01:42