티스토리 뷰
오늘도 실습 시작과 동시에 동기분에게 꿀팁을 전수받았다.
두고두고 필요할 것 같아서 정리해서 저장.
개발 공부를 한다고 이런저런 프로그램을 돌리다 보면 백그라운드에서 먼저 돌아가고 있던 프로세스 때문에
예상치 못했던 충돌 오류를 만나는 일이 자주 벌어진다.
당연히 창을 닫았으니 종료되었을거라 믿었던 프로세스가 내 리소스를 잡아먹고 충돌을 내는 당황스러운 상황
.. 을 예방하기 위해 백그라운드에서 어떤 일이 진행 중인지 조회하는 방법에 대해 얕게 정리하려고 한다.
Process?
먼저 커널(Kernel)은 운영체제의 정체성을 결정짓는 기반 프로그램이다.
이 커널이 필요한 만큼 하드웨어 리소스를 할당해 실행할 수 있는 애플리케이션을 프로그램이라 부르며,
실행 중인 프로그램, 혹은 실행중인 애플리케이션의 작업 단위를 프로세스(Process)라 부른다.
추가로 프로세스보다 작은 작업 단위를 스레드(Thread)라 부르며, 하나의 프로세스는 최소한 하나의 스레드를 가진다.
PS(Process Status), Kill
ps -ef / ps -ef | grep <process name>
바로 본론으로 들어가자면 모든 프로세스 리스트를 조회하는 명령어 / 특정 프로세스 정보를 확인하는 명령어이다.
가장 많이 쓰고 또 오늘 내가 사용한 것이라 제일 위에 적는다.
% ps -ef | head -3
UID PID PPID C STIME TTY TIME CMD
0 1 0 0 금12AM ?? 9:47.54 /sbin/launchd
0 59 1 0 금12AM ?? 1:04.91 /usr/sbin/syslogd
% ps -ef | grep MacOS | head -3
501 131 1 0 금12AM ?? 2:09.75 /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow console
0 148 1 0 금12AM ?? 0:14.10 /System/Library/Frameworks/Security.framework/Versions/A/XPCServices/authd.xpc/Contents/MacOS/authd
0 316 1 0 금12AM ?? 0:00.38 /System/Library/Frameworks/CryptoTokenKit.framework/ctkahp.bundle/Contents/MacOS/ctkahp -d
뒤에 적은 | head -3(| tail -3)은 상위(하위) 세 줄만 조회하는 명령어이다.
kill -9 <PID> / kill -9 <process name>
프로세스 아이디와 이름으로(라고 하니 주문을 외우는 것 같지만) 프로세스를 (강제) 종료하는 명령어.
kill 뒤에 붙은 -9가 강제 종료를 요구하는 명령어이다.
백그라운드에 원하지 않는 앱이 돌아가고 있을때 유용하다.
ps
현재 돌아가고 있는 프로세스를 조회하는 기본 명령어.
% ps
PID TTY TIME CMD
52046 ttys000 0:00.24 -zsh
터미널에 그냥 ps만 입력하면 터미널 자체의 프로세스만 실행되고 출력된다.
ps -f / ps -l
ps -f와 ps -l을 쓰면 각각 더 자세한 정보를 얻을 수 있다.
% ps -f
UID PID PPID C STIME TTY TIME CMD
501 52046 52045 0 5:16PM ttys000 0:00.26 -zsh
% ps -l
UID PID PPID F CPU PRI NI SZ RSS WCHAN S ADDR TTY TIME CMD
501 52046 52045 4006 0 31 0 4297412 1460 - S 0 ttys000 0:00.26 -zsh
UID, PID, PPID
출력되는 정보 중 가장 중요한 것은 다음의 세 가지이다.
- UID - User ID. 사용자 식별 번호이다.
- PID - Process ID. 프로세스 식별 번호이다. 뒤에 프로세스 종료 시 사용된다.
- PPID - Parent Process ID. 프로세스를 실행시킨 부모 프로세스의 PID를 가리킨다.
ps -e / ps -ef
모든 프로세스 리스트를 출력할 때 사용된다. f의 유무는 위와 같은 기능을 한다.
ps aux
모든 프로세스 목록을 리소스 점유율과 함께 출력
'Development > Mac' 카테고리의 다른 글
[Mac]맥.꾸 - 하루종일 달리는 고양이, 런캣(RunCat) (8) | 2022.10.12 |
---|---|
[Mac]사용중인 포트 조회 및 강제 종료 (0) | 2022.10.11 |
[Mac]맥.꾸 - vim syntax & cheat sheet (2) | 2022.10.06 |
[Mac]텍스트 편집기로 생성한 html이 소스코드 그대로 보일 때 (6) | 2022.09.29 |
- Total
- Today
- Yesterday
- 리스트
- 남미
- 백준
- java
- 세계일주
- a6000
- 동적계획법
- 면접 준비
- 세모
- 맛집
- 여행
- 자바
- 스프링
- RX100M5
- Backjoon
- 유럽여행
- Algorithm
- 기술면접
- BOJ
- 지지
- 야경
- 중남미
- spring
- 스트림
- 알고리즘
- 세계여행
- 유럽
- 칼이사
- Python
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |