ABOUT ME

진심은 있으되 진심밖에 없는 태도는 취하지 말고, 불확실한 삶에서 내가 내릴 수 있는 가장 자유로운 선택은 오늘 하루를 행복하게 사는 것:)

  • LPIC level 1 101 공부 - 3장 정리 (프로세스 관리)
    [공부] 프로그래밍/Linux 2023. 9. 9. 09:45

     

    3-1 시스템에서 엑티브한 프로세스를 전부 표시

    : ps ax

    ps -ef

    pstree

    -> 프로세스 : 현재 실행 중인 프로그램

    Linux에서는 ps command를 사용해서 프로세스의 정보를 얻는 것이 가능

    ・ PID : 프로세스 ID

    ・ TTY : 제어하고 있는 단말

    ・ TIME : 실행 시간

    ・ CMD : command (실행 파일명)

     

    프로세스를 표시하는 command
    ps
    프로세스의 정보를 표시하는 기본적인 command
    pstree
    프로세스의 계층을 표시
    top
    프로세스의 정보를 주기적으로 리얼타임으로 표시

     

    UNIX 옵션
    ps -p PID
    ・ -e : 모든 프로세스 표시
    ・ -f : 상세 정보 표시
    ・ -l : 긴 포맷으로 상세 정보 표시
    ・ -o : 유저 정의의 포맷 표시
    BSD 옵션
    ps p PID
    ・ a : 모든 프로세스 표시
    ・ u : 상세 정보 표시
    ・ x : 제어 단말이 아닌 프로세스 정보도 표시
    GNU 로그 옵션
    ps --pid PID
     

     

    3-2 현재 shell에서 실행 중인 프로세스의 우선도를 확인

    : ps -l

    top

    -> ps -l, top : NI 항목이 표시되어 우선도 확인 가능

    -d 초
    갱신의 간격을 초 단위로 지정
    -n 수치
    표시 횟수를 수치로 표시
    -t
    물리 메모리, スワップメモリ의 합계를 표시

     

    3-3 옵션을 지정 하지 않고 프로세스를 트리 구조로 표시

    : pstree

     

    3-4 init의 프로세스 ID 적절한 것 : 1

    -> 시스템이 기동하면 처음에 init 프로세스가 생성된다. 따라서 init 프로세스의 PID는 1

     

    3-5 프로세스의 우선도를 디폴트로부터 변경 실행 : nice

    -> nice [옵션] [command]

    디폴트 +10 (-는 root 권한만 설정 가능)

    -20~19 설정 가능

    프로세스
    (리얼 타임 프로세스의 경우는 정적 우선도만)
    동적 우선도
    정적 우선도와 CPU 사용기간을 근거로 계산하며 CPU를 사용할수록 우산도가 낮아짐
    정적 우선도
    nice 값에 따라 일정 범위에서 유저가 설정 가능

     

    3-7 실행 중 프로세스의 우선도를 변경 : top, renice

     
    $ renice 15 -p 19442 // -p : PID 지정

     

    3-8 백그라운드에서 등장하고 있는 ジョブ를 フォアグラウンド에서 움직이게 하는

    command : fg

     

    ジョブ : command 라인 1행에서 실행된 처리 단위
    フォアグラウンドジョブ
    키보드와 단말을 점유해서 대화적 조작하는 ジョブ
    バックグラウンドジョブ
    키보드 입력을 받는것이 X ジョブ

     

    ジョブ를 제어하는 command
    jobs
    バックグラウンド 일시정지 중의 ジョブ 표시
    [Ctrl]+[Z]
    실행하고 있는 ジョブ를 일시정지
    bg % ジョブ ID
    지정한 ジョブ를 バックグラウンド에 이행
    fg % ジョブ ID
    지정한 ジョブ를 フォアグラウンドジョブ에 이행

     

    3-9 유저로부터 command 입력을 가능으로 한 채, 정지하고 있는 myapp을 재개시키는 command : bg myapp

     

    3-10 현재 バックグラウンド에서 진행되고 있는 ジョブ를 전부 표시 : jobs

     

    3-11 로그아웃 후에도 command가 종료하는것이 아니라 バックグラウンド에서 실행을 계속 시키는 command : nohup command명 &

    -> 로그아웃해도 프로그램을 계속 실행하기 위한 : nohup

     

    3-12 [kill 프로세스ID]를 실행했을 때, 프로세스에 보내지는 시그널

    : SIGTERM(15)

    -> 시그널 : 割り込みによって 프로세스에 특정의 동작을 하도록 통치하기 위한 구조

    번호
    시그널명
    설명
    1
    SIGHUP
    단말의 절단에 따라 프로세스 종료
    2 (Ctrl+c)
    SIGINT
    割り込み에 따라 프로세스 종료
    9
    SIGKILL
    프로세스 강제 종료
    15 (디폴트)
    SIGTERM
    프로세스 종료
    18
    SIGCONT
    일시정지한 프로세스 재개

     

    kill -l : 시그널명의 일람 표시
    kill [옵션] [시그널명 | 시그널번호] 프로세스ID
    kill [옵션] [시그널명 | 시그널번호] % ジョブID
    killall [옵션] [시그널명] [시그널번호] 프로세스명

     

    3-13 [kill 1234]와 같은 동작을 하는 command

    : [kill -15 1234] 혹은 [kill -s SIGTERM 1234] (=kill -TERM 1234)

    -> kill command에서 명시적으로 시그널 지정X

    SIGTERM(15)가 송신되어짐

    -s : 시그널을 송신하는 옵션으로 생략 가능

     

    3-14 [Ctrl]+[c]에서 송신되어지는 시그널 번호 : SIGINT(2)

    -> [Ctrl]+[c] : 프로세스 종료 (송신될 경우 SIGTSIP(20)이 송신됨)

     

    3-15 어느 프로세스 PID가 1023이며, 이 프로세스를 종료하고 싶을 때, 종료 시 그 프로세스에 따라 클린업(종료 처리)를 실행시킬 때

    : kill -15 1023 혹은 kill -SIGTERM 1023

    -> SIGTERM(15) : 프로그램을 종료전에 애플리케이션마다 필요한 클린업을 실시

    클린업 : 사용한 소스의 해방과 로그 파일 삭제 등을 실시

     

    3-16 SIGUSR1 시그널을 apache2라는 이름의 프로세스에 송신시킬 때

    : apache2의 프로세스ID를 검색하지 않으면 시그널은 송신할 수 없다.

    -> kill all : 프로세스명을 지정해 시그널 송신

     

    3-17 아래의 ジョブ에서 top ジョブ를 종료시키는 command : kill %3

     
    $jobs
    [1] Running prog &
    [2] -Running search &
    [3] +Running top &

     

    3-18 특정 command를 초 수를 지정해 반복 실행시키고 결과를 단말에 표시 : watch

    -> watch : 지정된 command를 반복 실행하여, 그 결과를 표시

    -n : 시간의 간격을 바꾸고 싶을 때 (= --interval)

    중단은 [Ctrl]+[c]

     

    3-19 tmux command의 설명

    : 화면 분할과 단일 단말에 복수 화면 작성이 가능

    복수의 섹션을 사용하는 것이 가능

    작업 도중의 상태를 보존한 채, 섹션을 절단 가능

    -> tmux : 한 개의 물리적인 단말 화면에서 다수의 단말을 작성,

    엑세스 제어하는 것이 가능한 문자형 단말의 화면 제어 프로그램

    tmux 용어
    섹션
    tmux의 관리 하에 있는 가상 단말의 단일 집합
    윈도우
    섹션에서 관리되는 가상 윈도우
    デタッチ
    섹션에서 절단
    アタッチ
    デタッチ한 섹션에 재접속
    [Ctrl]+[b] 후에 w
    윈도우 일람 표시
    [enter]
    화면 바뀜
    [Ctrl]+[b] 후 %
    화면 분할
    [Ctrl]+[b] 후 o
    입력 入れ替え
    [Ctrl]+[b] 또는 tmux kill -session
    섹션 종료
    man tmux (= [Ctrl]+[b] 후에 ?)
    메뉴얼 참조

     

Designed by Tistory.