ps는 현재 시스템의 프로세스를 출력해줍니다.
단순히 ps로 출력할 때는 현재 접속한 터미널에서 실행한 프로세스만을 출력합니다.
터미널이 꼭 하나만 존재하는 것은 아닙니다. 저의 경우에는 젠킨스 서버에서 CI/CD를 위해 백엔드 API 서버 ssh 로 접속하는데요. 이 때는 새로운 터미널에서 접속하게 된 것입니다.
그래서 현재 시스템의 모든 프로세스를 보기 위해서는 xf 옵션을 주어야 합니다.
보면 jar 프로그램이 실행중인 것을 확인할 수 있습니다. ps 명령어에 출력되는 정보를 하나씩 살펴보겠습니다.
PID
프로세스 식별자입니다. 시스템 내에서 고유한 번호를 가집니다. PID를 통해 다양한 작업을 수행할 수 있고 CPU는 PID를 기반으로 컨택스트 스위칭을 해가면 프로세스의 작업들을 수행하는 것으로 알고 있습니다.
TTY(Teletypewriter)
터미널을 의미합니다. jar 파일의 경우 TTY가 ? 로 표시되는데요. 이는 해당 프로세스가 터미널에 접속되어 있지 않은 실행중인 프로그램임을 의미합니다.
이 부분은 제가 찾아보고 시도해본 내용이라 정확하지 않을 수 있는데요. TTY가 ?이면 프로세스가 현재 터미널과 연결된 상태가 아닙니다. 그렇기 때문에 포그라운드로 전환할 수 없습니다.
STAT
프로세스의 상태를 의미합니다. 각 알파벳마다 의미를 가집니다.
R : 실행 중이거나 실행 가능한 상태를 의미합니다.
S : 프로세스가 현재 슬립 상태에 있으며, 특정 이벤트를 대기하고 있는 상태를 나타냅니다.
l(엘) : 해당 프로세스가 멀티 스레드로 구성되어 있음을 의미한다.
s : 프로세스가 세션 리더임을 의미합니다. 세션 리더는 터미널과 관련된 세션을 제어하는 프로세스를 의미합니다.
+ : 해당 프로세스가 포그라운드에 있음을 의미한다.
이 외에도 많은 STAT가 존재하는데 이정도면 정리하겠습니다.
TIME
프로세스가 CPU를 점유한 시간을 의미합니다.
COMMAND
셸을 통해 실행한 명령어 또는 프로세스를 의미합니다.
'Linux' 카테고리의 다른 글
모두의 리눅스 (5) 잡/프로세스 종료 (0) | 2023.05.27 |
---|---|
모두의 리눅스 (4) 프로세스와 잡 (0) | 2023.05.27 |
모두의 리눅스 (3) 파일 검색 및 명령어 find, man (0) | 2023.05.24 |
모두의 리눅스 (2) 파일 조작 기본 명령어 mkdir, touch, rm, rmdir, cat, cp, mv, ln (0) | 2023.05.24 |
모두의 리눅스 (1) 용어 정리 셸, 커널, 프롬프트, 셸 스크립트 (0) | 2023.05.23 |