프로세스 번호로 프로세스 이름 알아내기

envy100의 이미지

프로세스 번호는 아는데 프로세스 이름을 몰라요
알아 낼 수 있는 방법좀 알려주세요

iyouhe의 이미지

예를 들어 PID가 '11008'이고 삼바라면

#cd /proc/11008
#ls -l
-r--r--r-- 1 root root 0 Feb 21 15:48 cmdline
-r--r--r-- 1 root root 0 Feb 21 15:48 cpu
lrwxrwxrwx 1 root root 0 Feb 21 15:48 cwd -> /
-r-------- 1 root root 0 Feb 21 15:48 environ
lrwxrwxrwx 1 root root 0 Feb 21 15:48 exe -> /usr/sbin/smbd
dr-x------ 2 root root 0 Feb 21 15:48 fd
-r--r--r-- 1 root root 0 Feb 21 15:48 maps
-rw------- 1 root root 0 Feb 21 15:48 mem
lrwxrwxrwx 1 root root 0 Feb 21 15:48 root -> /
-r--r--r-- 1 root root 0 Feb 21 15:48 stat
-r--r--r-- 1 root root 0 Feb 21 15:48 statm
-r--r--r-- 1 root root 0 Feb 21 15:48 status
로 표시 됩니다.
여기서 cmdline을 cat으로 보세요.

프로그램으로 알고 싶다면
FILE *fp = fopen("/proc/11008/cmdline","r");

로 하신후 읽의셔도 됩니다.

배울수 있어서 좋다.

new5244의 이미지

도움이 될라 모르겠는데...

/proc 디렉토리 아래 해당 pid 디렉토리에 가면 exe 에 프로그램 명이 link 되 있습니다...

from saibi