프로세스 관리하기

|

리눅스 프로세스

용어 설명
PID (Process ID) 프로세스 고유 식별 번호
UID (User ID) 프로세스를 소유한 사용자 계정의 식별 번호
GID( Group ID) 프로세스가 속해있는 그룹의 식별 번호
File Descriptor 프로세스의 읽기/쓰기를 위해 어떤 파일의 어떤 위치를 열고 있는지 기록


#프로세스 확인

현재 실행중인 프로세스는 ps 명령어를 이용해서 확인할 수 있습니다. ps만 입력한 경우 현재 로그인한 사용자가 실행한 프로세스만 보여줍니다.

-a 옵션을 붙이게 되면 다른 사용자의 프로세스 상태도 표시하며, -x 옵션은 화면에 보이지 않는 프로세스까지 모두 표시합니다. -u 옵션을 붙이면 프로세스를 사용한 사용자가 누구인지, 그리고 실행 시간까지 표시합니다.

아래와 같은 형태로 3가지 옵션을 모두 적용할 수 있습니다.

ps -aux

-aux 옵션 대신 -ef 옵션을 붙이게 되면 PID(Process ID)로 정렬된 결과를 보여줍니다.


프로세스 전체적인 상태 조회

ps -aux 명령어 대신 top 명령어를 이용할 경우 실시간으로 메모리 점유율이나 CPU 사용율을 화면에 보여줍니다. ps 명령어가 개별 프로세스의 상태를 보여주는데 반해, top는 전체 프로세스 상태를 한 눈에 보기 좋게 출력합니다.


프로세스 종료하기

프로세스 종료는 kill 명령어를 이용해서 종료할 수 있습니다. 사용법은 다음과 같습니다.

kill -[시그널] [PID]

ex) kill -9 5678

kill은 프로세스의 종료만을 위해 사용되는 명령어는 아닙니다. 현재 실행중인 프로세스에 시그널(Signal)을 보내서 프로세스의 상태를 변경하는 것이 주 목적입니다.

아무 시그널 옵션도 주지 않은 상태로 kill 명령어를 수행하면 시그널의 기본값이 -15로 설정됩니다. 15SIGTERM으로 프로세스를 종료하라는 신호입니다. 대부분의 프로그램은 기본값으로 종료가 되지만 간혹 종료가 되지 않는 프로그램들도 있습니다. 이런 경우는 SIGKILL 시그널인 -9 옵션을 이용해서 프로세스를 강제로 종료하게 할 수 있습니다.