리눅스 ps 명령어 실행중인 프로세스 확인 방법

리눅스에서 실행 중인 프로세스를 확인할 때 ps 명령어를 사용할 수 있습니다. ps -ef 형태로 자주 사용되며 grep 명령어를 파이프라인으로 연결해 특정 프로세스에 대한 추가 정보를 확인하는 방식으로도 활용할 수 있습니다.

프로세스란?

프로세스(process)는 프로그램의 실행입니다. 응용 프로그램을 열거나 터미널에서 명령어를 실행할 때 프로세스가 올라옵니다. 실행된 프로세스에는 즉시 고유한 PID가 부여됩니다.

ps

ps는 현재 실행되고 있는 프로세스를 보여주는 명령어입니다. 옵션 없이 ps를 실행하면 아주 간단한 정보를 출력합니다.

[root@localhost ~]# ps
   PID TTY          TIME CMD
  3161 pts/1    00:00:00 bash
  3409 pts/1    00:00:05 java
  3425 pts/1    00:00:35 java
  4020 pts/1    00:00:00 su
  4069 pts/1    00:00:00 su
  4073 pts/1    00:00:00 bash
  4211 pts/1    00:00:00 ps

ps -ef

ps -ef 명령어는 시스템의 모든 프로세스를 출력합니다.

  • -e : 모든 프로세스를 출력합니다. 사용자가 실행한 프로세스를 포함해서 부팅하며 자동으로 실행되는 systemd 같은 프로세스도 모두 출력합니다.
  • -f : 모든 포맷을 출력합니다. 더 자세한 출력 결과를 보여줍니다.

ps 명령어는 grep과 함께 쓰는 경우도 많습니다. 예를 들어, 실행 중인 postgresql 프로세스를 찾아보겠습니다.

[root@localhost bin]# ps -e | grep "post*"
  1154 ?        00:00:00 postmaster
  1218 ?        00:00:00 postmaster
  1231 ?        00:00:00 postmaster
  1232 ?        00:00:00 postmaster
  1233 ?        00:00:00 postmaster
  1234 ?        00:00:00 postmaster
  1235 ?        00:00:00 postmaster
  1242 ?        00:00:00 postmaster

 

출력된 결과로 알게된 PID로 netstat을 통해 소켓 리스닝 상태를 확인하는 식으로 추가 정보를 확인할 수 있습니다.

[root@localhost bin]# netstat -ntlp | grep "1154"
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      1154/postmaster
tcp6       0      0 :::5432                 :::*                    LISTEN      1154/postmaster

ps -aux

참고로 ps -ef 명령어는 ps -aux 명령어와 출력 결과가 비슷합니다. 단 ps -aux는 프로세스의 CPU와 메모리 사용량을 출력한다는 차이가 있습니다.

  • a : 시스템의 모든 사용자가 실행 중인 프로세스를 출력합니다.
  • u : 메모리, CPU 사용률, 프로세스 상태코드, 프로세스 소유자 등의 정보를 출력합니다.
  • x : 시스템이 부팅될 때 백그라운드에서 실행되는 시스템 관련 프로세스도 출력합니다. 예를 들어 PID 1번인 systemd도 출력됩니다.

 

ps -aux

반응형

댓글

Designed by JB FACTORY