LambFerret's Blog
#6 <운영 및 관리 - 프로세스> 본문
3. 프로세스 관리
- 개념 및 유형
CPU와 메모리를 할당받아 실행시킨 프로그램, 고유의 PID를 할당받는다.
유형
- 포그라운드 프로세스 : 사용자와 상호작용
- 백그라운드 프로세스 : 사용자의 입력에 관계없이 실행
fork()
- 새로운 프로세스를 만들때 기존 프로세스를 복제하는 방식
- 원본 : 부모 프로세스, forked : 자식 프로세스
exec()
- 호출하는 프로세스가 새로운 프로세스로 변경 : 새로이 메모리를 할당하지 않음
- 새로운 프로세스의 코드로 덮어 씌운다
데몬
- 리눅스 시스템 부팅시 자동으로 실행되는 백그라운드 프로세스
- 메모리에 상주하면서 대기중인 서버 프로세스
- 주기적이고 지속적 서비스 요청 가능
- standalone 데몬 :
- 서비스가 메모리에 상주하는 단독실행방식 . 독립적으로 수행
- 빠른 응답속도를 요하는 경우에 사용, but 메모리 점유로 서버 부하가 큼
- “/etc/inetd.d/”
- http, mysql, nameserver, sendmail 등
- inetd 데몬(슈퍼데몬) :
- 다른 데몬들의 상위에 존재하는 standalone
- 자체적으로 하나의 독립 데몬이지만 여러가지 다른 서비스들을 제어하고 관리
- inetd 타입 데몬 :
- 직접 서비스하지 못하고 inetd가 있어야 해당 서비스 제공
- Telnet, FTP, rlogin
- “/etc/xinetd.d/”
- inetd가 종료되면 inetd 타입도 자동 종료
- standalone 데몬 :
시그널 : 프로세스에게 이벤트 발생을 알려주는 소프트웨어 인터럽트
시그널이 전달될 때 발생되는 4가지 상황
SIG_IGN (SIG_PF)1 | 운영체제에 의해 시그널 무시 |
SIG_ERR (SIG_PF)-1 | 운영체제는 프로그램을 강제 종료 |
SIG_DFL (SIG_PF)0 | 지정 시그널 처리루틴 실행 |
SIG_HOLD (SIG_PF)2 | 시그널 블로킹 |
시그널 이벤트
2 SIGINT | 그냥 종료 |
9 SIGKILL | 강종 |
15 SIGTERM | 강종 |
- 프로세스 유틸리티
명령어
ps | cpu 사용도가 낮은순으로 출력, a실행중모든프로세스 출력, e모든프로세스정보, u사용자이름과프로세스시작시간출력, x다른사용자까지 모든사용프로세스출력, l자세정보출력 |
pstree | p프로세스ID표시, n정령, a명령인자를 포함한 정보까지 표시, h음영강조 |
jobs | 중지, 백그라운드상태 등을 표시. l그룹ID표시, n그룹의대표PID표시, p한행씩표시 |
bg, fg | CZ로중지시킨후 작업번호 |
kill | terminate process |
killall | 같은데몬의 여러프로세스를 종료 |
nice | 높으면 우선순위 낮음 (양수”-”, 음수”--” 로 연산) |
renice | 이미 실행중인 프로세스의 우선순위 변경 (이건 그 적힌 숫자대로) |
top | 운영상태 전부 |
nohup | 백그라운드 실행 |
ps -ux
$ps -ux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
ubuntu 688 0.0 0.4 18944 4392 ? Ss Aug05 0:00 /lib/systemd/systemd --user
ubuntu 689 0.0 0.3 103812 3200 ? S Aug05 0:00 (sd-pam)
ubuntu 273083 0.0 1.5 817836 15556 ? Sl Oct10 0:00 node /home/ubuntu/.nvm/versions/node/v16.16.0/bin/nodemon ./index.ts
ubuntu 273096 0.0 0.0 2616 528 ? S Oct10 0:00 sh -c ts-node ./index.ts
ubuntu 273097 0.0 22.1 11472704 219432 ? Sl Oct10 4:17 node /home/ubuntu/discord-bot/node_modules/.bin/ts-node ./index.ts
ubuntu 406512 0.0 0.5 13936 5228 ? S 10:12 0:00 sshd: ubuntu@pts/0
ubuntu 406513 0.0 0.8 13224 8348 pts/0 Ss 10:12 0:00 -bash
ubuntu 406725 0.0 0.3 10620 3276 pts/0 R+ 10:13 0:00 ps ux
%CPU | CPU사용비율 (추정치) |
%MEM | 메모리사용비율 (추정치) |
VSZ | 페이지 단위의 가상메모리 사용량 |
RRS | 실제 사용된 메모리량 |
TTY | 프로세스와 연결된 터미널 번호 |
STAT | 현재 프로세스 상태 |
START | 프로세스 시작시간 |
TIME | CPU 사용시간 |
COMMAND | 실행명령 |
ps -lx
$ps -lx
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
4 1000 688 1 20 0 18944 4380 ep_pol Ss ? 0:00 /lib/systemd/systemd --user
5 1000 689 688 20 0 103812 3200 - S ? 0:00 (sd-pam)
0 1000 273083 1 20 0 817836 15556 ep_pol Sl ? 0:00 node /home/ubuntu/.nvm/versions/node/v16.16.0/bin/nodemon ./index.ts
0 1000 273096 273083 20 0 2616 528 do_wai S ? 0:00 sh -c ts-node ./index.ts
0 1000 273097 273096 20 0 11472704 217392 ep_pol Sl ? 4:17 node /home/ubuntu/discord-bot/node_modules/.bin/ts-node ./index.ts
5 1000 406512 406415 20 0 13936 5416 - S ? 0:00 sshd: ubuntu@pts/0
0 1000 406513 406512 20 0 13224 7948 do_wai Ss pts/0 0:00 -bash
0 1000 407295 406513 20 0 10540 3140 - R+ pts/0 0:00 ps -lx
F | 프로세스 플래그. 8진수값의 합 |
PPID | 부모 프로세스 PID |
PRI | 실행 우선순위값. 값이 낮을수록 우선순위 높음 |
NI | NICE 우선순위를 계산할때 사용되는 NICE값 |
VSZ | 프로세스크기 |
WCHAN | 프로세스가 대기상태를 벗어나는 event, 이것이 실행될 주기억장치의 주소를 가르킴, 공백은실행중이라는뜻 |
'스터디 > 리눅스' 카테고리의 다른 글
#8 <운영 및 관리 - 소프트웨어 설치 및 삭제> (0) | 2022.11.21 |
---|---|
#7 <운영 및 관리 - 에디터> (0) | 2022.11.15 |
#5 <운영 및 관리 - 셸> (0) | 2022.11.09 |
#4 <운영 및 관리 - 파일시스템 관련 명령어> (0) | 2022.11.07 |
#3 <리눅스 일반 - 기본 명령어> (0) | 2022.11.04 |
Comments