리눅스에서 PID 번호를 사용하여 프로세스 이름 찾는 방법

이 기사에서는 프로세스 식별 번호 (PID)로 프로세스 이름을 찾는 방법에 대해 살펴볼 것입니다. 실제 솔루션에 대해 알아보기 전에, Linux에서 프로세스가 생성되고 식별되는 방법에 대해 간략히 이야기하겠습니다.

사용자 또는 시스템(Linux)이 프로그램을 실행할 때마다 커널은 프로세스를 생성합니다. 프로세스는 프로그램의 실행 세부 정보를 메모리에 보유하며, 입력 및 출력 데이터, 변수 등이 포함됩니다.

중요한 점은 Linux가 멀티태스킹 운영 체제이므로 여러 프로그램을 동시에 실행하며, 이는 각 프로세스가 특정하게 식별되어야 함을 의미합니다.

커널은 각 프로세스를 프로세스 ID (PID)를 사용하여 식별하며, 프로세스가 호출될 때 할당되는 유일한 PID를 가져야만 실행 오류를 피할 수 있습니다.

/proc 파일 시스템에는 시스템에서 현재 실행 중인 프로세스에 대한 정보가 저장되어 있으며, 각 프로세스에 대한 디렉터리가 포함되어 있습니다.

ls 명령을 사용하여 해당 내용을 나열하고, 그러나 목록이 길 수 있으므로 파이프 라인과 less 유틸리티를 사용하여 /proc 내용을 더 편리하게 보십시오.

$ ls /proc 
OR
$ ls /proc | less 
List /proc File System
1     168   2230  25    329   584   7386  83         driver        schedstat
10    169   2234  2503  33    603   74    830        execdomains   scsi
1070  17    2247  2507  34    610   7411  833        fb            self
1081  1702  2256  2523  349   611   7423  836        filesystems   slabinfo
109   1714  2258  253   35    612   745   839        fs            softirqs
11    173   2266  2551  36    613   746   84         interrupts    stat
110   1760  2273  26    362   62    75    844        iomem         swaps
1188  1763  2278  2688  3642  63    7533  85         ioports       sys
12    1769  2282  2694  3643  64    7589  86         irq           sysrq-trigger
1204  177   2283  2695  37    6436  76    860        kallsyms      sysvipc
1209  1773  2285  2698  38    65    7619  87         kcore         thread-self
1254  18    2287  2699  39    66    7689  9          keys          timer_list
13    1847  2295  27    3974  67    7690  94         key-users     timer_stats
15    1914  23    2702  3976  68    77    977        kmsg          tty
152   1917  2308  28    4273  6897  7725  981        kpagecgroup   uptime
153   1918  2309  280   4374  69    7729  987        kpagecount    version
154   1938  2310  2815  4392  6969  7733  997        kpageflags    version_signature
155   1956  2311  2817  44    6980  78    acpi       loadavg       vmallocinfo
156   1981  2315  282   45    7     79    asound     locks         vmstat
1565  1986  2316  283   4543  70    790   buddyinfo  mdstat        zoneinfo
1567  1988  2317  29    46    71    8     bus        meminfo
157   2     2324  2935  461   7102  80    cgroups    misc
1579  20    2347  2944  4686  72    808   cmdline    modules
158   2010  2354  3     47    73    81    consoles   mounts
1584  2043  2436  30    4700  7304  810   cpuinfo    mtrr
159   2044  2437  3016  5     7311  815   crypto     net
1590  21    2442  31    515   7322  82    devices    pagetypeinfo
16    2167  2443  318   5273  7347  820   diskstats  partitions
160   22    2492  32    5274  7367  823   dma        sched_debug

위의 스크린샷에서 번호가 매겨진 디렉터리는 실행 중인 프로세스에 대한 정보 파일을 저장하며, 각 번호는 PID에 해당합니다.

systemd 프로세스의 PID 1에 대한 파일 목록은 아래와 같습니다:

$ ls /proc/1
Show SystemD Process PID
ls: cannot read symbolic link '/proc/1/cwd': Permission denied
ls: cannot read symbolic link '/proc/1/root': Permission denied
ls: cannot read symbolic link '/proc/1/exe': Permission denied
attr        coredump_filter  gid_map    mountinfo   oom_score      schedstat  status
autogroup   cpuset           io         mounts      oom_score_adj  sessionid  syscall
auxv        cwd              limits     mountstats  pagemap        setgroups  task
cgroup      environ          loginuid   net         personality    smaps      timers
clear_refs  exe              map_files  ns          projid_map     stack      uid_map
cmdline     fd               maps       numa_maps   root           stat       wchan
comm        fdinfo           mem        oom_adj     sched          statm

ps, top 및 비교적 새로운 glances 명령을 포함한 전통적인 Linux 명령을 사용하여 PID모니터링할 수 있습니다. 아래 예시와 같이 많은 명령을 사용하여 Linux 프로세스를 모니터링할 수 있습니다:

$ ps aux
Show Running Processes with PID
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0 185728  6268 ?        Ss   10:15   0:01 /sbin/init splash
root         2  0.0  0.0      0     0 ?        S    10:15   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    10:15   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   10:15   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    10:15   0:09 [rcu_sched]
root         8  0.0  0.0      0     0 ?        S    10:15   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    10:15   0:00 [migration/0]
root        10  0.0  0.0      0     0 ?        S    10:15   0:00 [watchdog/0]
root        11  0.0  0.0      0     0 ?        S    10:15   0:00 [watchdog/1]
root        12  0.0  0.0      0     0 ?        S    10:15   0:00 [migration/1]
root        13  0.0  0.0      0     0 ?        S    10:15   0:00 [ksoftirqd/1]
root        15  0.0  0.0      0     0 ?        S<   10:15   0:00 [kworker/1:0H]
root        16  0.0  0.0      0     0 ?        S    10:15   0:00 [watchdog/2]
root        17  0.0  0.0      0     0 ?        S    10:15   0:00 [migration/2]
root        18  0.0  0.0      0     0 ?        S    10:15   0:00 [ksoftirqd/2]
root        20  0.0  0.0      0     0 ?        S<   10:15   0:00 [kworker/2:0H]
root        21  0.0  0.0      0     0 ?        S    10:15   0:00 [watchdog/3]
root        22  0.0  0.0      0     0 ?        S    10:15   0:00 [migration/3]
root        23  0.0  0.0      0     0 ?        S    10:15   0:00 [ksoftirqd/3]
root        25  0.0  0.0      0     0 ?        S<   10:15   0:00 [kworker/3:0H]
root        26  0.0  0.0      0     0 ?        S    10:15   0:00 [kdevtmpfs]
root        27  0.0  0.0      0     0 ?        S<   10:15   0:00 [netns]
root        28  0.0  0.0      0     0 ?        S<   10:15   0:00 [perf]
....

전통적인 top 명령을 사용하여 Linux 프로세스를 모니터링하십시오.

$ top
Monitor Linux Processes with top Command

Linux의 새로운 실시간 프로세스 모니터링 도구인 glances를 사용하여 Linux 프로세스를 모니터링하십시오.

$ glances
Glances – Real Time Linux Processes Monitoring

Linux 시스템에서 Glances를 怎样安装하는지 배우기에 대해 자세히 배울 수 있습니다.

프로세스 PID 번호를 찾아보십시오.

프로세스의 PID를 찾기 위해서는 pidof 명령어를 사용할 수 있습니다. 이 명령어는 프로세스의 PID를 표시합니다.

$ pidof firefox
$ pidof python
$ pidof cinnamon
Find Linux Process PID

이제 我们的 주제를 돌아가 어떤 프로세스의 PID를 이미 알고 있다고 가정하면, 다음과 같은 명령어 형식을 사용하여 그 이름을 표시할 수 있습니다.

$ ps -p PID -o format 

어디에서:

  1. -p 는 PID를 지정합니다.
  2. -o 는 사용자 정의 형식을 사용합니다.

PID 번호를 사용해 프로세스 이름 찾기

이 섹션에서는, 사용자 정의 형식(即 command=)의 도움을 받아 PID 번호를 사용하여 프로세스 이름을 찾는 방법을 알아봅니다. 이 command=는 프로세스 이름과 같은 명령어 이름을 의미합니다.

$ ps -p 2523 -o comm=
$ ps -p 2295 -o comm=
Find Linux Process Name

추가적인 사용 정보나 옵션을 보시려면 ps man 페이지를 살펴봅시다.

$ man ps

PID 번호를 사용하여 프로세스를 杀死하고자 하시면, PID를 사용해 Linux 프로세스 찾아보고 杀死하기 を 읽어보시는 것을 추천드립니다.

이제 이것以上은 하시고 있습니다. 다른 좋은 방법을 知らって 있다면, PID를 사용해 프로세스 이름을 찾는 것을 Share with us via our comment section below.

Source:
https://www.tecmint.com/find-process-name-pid-number-linux/