LambFerret's Blog

#6 <운영 및 관리 - 프로세스> 본문

스터디/리눅스

#6 <운영 및 관리 - 프로세스>

램페럿 2022. 11. 10. 19:50

3. 프로세스 관리

  • 개념 및 유형

CPU와 메모리를 할당받아 실행시킨 프로그램, 고유의 PID를 할당받는다.

유형

  1. 포그라운드 프로세스 : 사용자와 상호작용
  2. 백그라운드 프로세스 : 사용자의 입력에 관계없이 실행

fork()

  • 새로운 프로세스를 만들때 기존 프로세스를 복제하는 방식
  • 원본 : 부모 프로세스, forked : 자식 프로세스

exec()

  • 호출하는 프로세스가 새로운 프로세스로 변경 : 새로이 메모리를 할당하지 않음
  • 새로운 프로세스의 코드로 덮어 씌운다

데몬

  • 리눅스 시스템 부팅시 자동으로 실행되는 백그라운드 프로세스
  • 메모리에 상주하면서 대기중인 서버 프로세스
  • 주기적이고 지속적 서비스 요청 가능
    1. standalone 데몬 :
      • 서비스가 메모리에 상주하는 단독실행방식 . 독립적으로 수행
      • 빠른 응답속도를 요하는 경우에 사용, but 메모리 점유로 서버 부하가 큼
      • “/etc/inetd.d/”
      • http, mysql, nameserver, sendmail 등
    2. inetd 데몬(슈퍼데몬) :
      • 다른 데몬들의 상위에 존재하는 standalone
      • 자체적으로 하나의 독립 데몬이지만 여러가지 다른 서비스들을 제어하고 관리
    3. inetd 타입 데몬 :
      • 직접 서비스하지 못하고 inetd가 있어야 해당 서비스 제공
      • Telnet, FTP, rlogin
      • “/etc/xinetd.d/”
      • inetd가 종료되면 inetd 타입도 자동 종료

시그널 : 프로세스에게 이벤트 발생을 알려주는 소프트웨어 인터럽트

시그널이 전달될 때 발생되는 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, 이것이 실행될 주기억장치의 주소를 가르킴, 공백은실행중이라는뜻
Comments