1. 프로세스는 어떻게 동작하는가?
: 시스템이 구동될 때, 커널은 몇몇 프로세스를 초기화하고 init이라는 프로그램을 실행한다. init은 차례차례 모든 시스템 서비스를 시작하기 위해 init 스크립트(/etc 위치에 있다)라고 불리는 쉘 스크립트들을 실행한다. 이러한 서비스들은 데몬 프로그램으로 구현되어 있다.
데몬 프로그램
- 아무런 사용자가 인터페이스 없이 백그라운드 상태로 실행하는 것이기 때문에, 로그인 하지 않은 상태에서도 시스템은 최소한의 필요 작업들을 수행한다.
ps - 프로세스 보기
iseungmin@iseungmin-ui-MacBookAir ~ ps
PID TTY TIME CMD
660 ttys000 0:00.25 -zsh
프로세스 660은 zsh를 나타낸다.
iseungmin@iseungmin-ui-MacBookAir ~ ps x
PID TT STAT TIME COMMAND
513 ?? S 0:04.62 /usr/sbin/distnoted agent
514 ?? S 0:04.72 /usr/sbin/cfprefsd agent
530 ?? S 0:01.06 /usr/libexec/UserEventAgent (Aqua)
533 ?? S 0:00.44 /usr/sbin/universalaccessd launchd -s
534 ?? S 0:00.99 /usr/libexec/knowledge-agent
535 ?? S 0:00.44 /System/Library/PrivateFrameworks/CloudServices.framework/Helpers/com.apple.sbd
536 ?? S 0:00.46 /usr/libexec/lsd
프로세스 상태
- R : 실행 상태, 프로세스는 실행 중이거나 실행 대기 중이다.
- S : 수면 상태, 이베트를 기다리는 중이다.
- D : 인터럽트 불가능한 수면 상태
- T : 종료 상태
- Z : 현존하지 않거나, 좀비 프로세스 이다.
- < : 높은 우선순위 프로세스.
- N : 낮은 우선순위 프로세스.
top - 프로세스 변화 보기
: 시스템의 활동을 좀 더 동적으로 보기 위해서 사용된다. 오직 ps 명령어가 실행된 순간의 상태에서만 제공한다.
- top
2. 프로세스 제어
: top 명령어로 프로세스 상태를 관찰하고, xlogo 명령어로 프로세스를 제어할 수 있다.
프로세스 인터럽트하기
- CTRL-C를 누르면 프로그램을 중단시킨다.
프로세스를 백그라운드로 전환
- xlogo & 처럼 & 기호를 명령어와 함께 사용하면 프로그램을 즉시 백그라운드로 이동한다.
프로세스를 포그라운드로 전환
$ jobs
[1]+ Running
$ fg %1
xlogo
3. 시그널
: 비정상적으로 동작하거나 그렇지 않으면 종료를 거부하는 프로그램의 실헹이 끝나게 해준다.
kill로 시그널 보내기
- kill [-signal] PID ...
iseungmin@iseungmin-ui-MacBookAir ~ kill -l
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2
kill -l 명령어를 입력하면 kill의 전체 시그널 목록을 볼 수 있다.
killall로 다수의 프로세스에 시그널 보내기
- killall [u user] [-signal] name ... : 사용자 이름과 일치하는 다수의 프로세스에 시그널을 보낸다.
'스터디 > 리눅스 커맨드라인' 카테고리의 다른 글
[리눅스] 12. VI (0) | 2022.05.01 |
---|---|
[리눅스] 11. 환경 (0) | 2022.04.27 |
[리눅스] 9. 퍼미션 (0) | 2022.04.25 |
[리눅스] 8. 고급 키보드 기법 (0) | 2022.04.18 |
[리눅스] 7. 확장과 인용 (0) | 2022.04.18 |