[리눅스마스터1급 - 1차] 2과목 - 4-3. 프로세스 관리

2024. 6. 13. 13:45·자격증 & 공부/리눅스마스터 1급

3. 프로세스 관리

3-1. 프로세스의 제어

  1) 런레벨 (Run Level) 분류

  2) 포그라운드 / 백그라운드

    - 포그라운드 (foreground) : 포그라운드로 실행시킨 프로세스는 종료되기 전까지는 다른 작업을 할 수 없음

    - 백그라운드 (background) : 프로세스를 백그라운드로 실행시키면 다른 작업 수행이 가능

      : 명령어 마지막에 ‘&’를 붙여 실행하면 백그라운드로 실행시킬 수 있음

    - 포그라운드 동작 중인 프로세스를 백그라운드로 전환하는 방법

      : [Ctrl] + [Z]를 눌러 작업을 일시 정지 시킨 후 bg 명령을 실행함

    - 백그라운드 -> 포어그라운드 전환 : fg 작업번호 or fg %작업번호

 

3-2. 관련 명령어

  1) top 명령어

    - CPU 프로세서의 현황을 실시간으로 출력해주는 명령어

    - 주요 내부 명령어

      : l : 상단의 load average 항목 켜기 끄기

      : t : 상단의 프로세스와 CPU 항목 켜기 끄기

      : m : 상단의 메모리 항목 켜기 끄기

      : M : 메모리 사용량이 큰 순서로 정렬

      : P : CPU 사용량이 큰 순서로 정렬

      : k : 입력한 PID의 프로세스 종료

      : q : 종료

    - 각 필드 설명

      : PID : 프로세스 ID

      : USER : 프로세스를 실행시킨 사용자

      : PR : 프로세스 우선순위

      : NI : NICE 값

      : VIRT : 프로세스가 사용하는 가상메모리 크기

      : RES : 프로세스가 사용하는 메모리 크기

      : SHR : 프로세스가 사용하는 공유 메모리 크기

      : S : 프로세스의 상태 (S : Sleeping, 휴먼 상태 / R : Running, 실행 상태 / Z : Zombie, 좀비 프로세스 / …)

      : %CPU : 프로세스가 사용하는 CPU의 사용률

      : %MEM : 프로세스가 사용하는 메모리의 사용률

      : TIME+ : 프로세스가 CPU를 사용한 시간

      : COMMAND : 실행된 명령어

 

  2) ps 명령어

    - 현재 실행 중인 작업의 사용자와 PID를 출력하는 명령어

    - 주요 옵션

      : [-a] : 모든 프로세스 출력

      : [-e] : 해당 프로세스에 관련된 환경변수 정보를 함께 출력, 커널 프로세스를 제외한 모든 프로세스를 출력

      : [-f] : 여러 항목들에 관한 내용을 출력, 출력을 풀 포맷으로 표기 (유닉스 스타일), UID, PID, PPID 등이 함께 표시

      : [-u USERNAME|UID] : 지정한 사용자가 실행한 프로세스를 출력

      : [-p PID] : 지정한 프로세스의 정보를 출력

    - 각 필드 설명

      : PID : 프로세스 ID

      : PPID : 부모 프로세스 ID

      : TTY : 프로세스와 연결된 터미널 포트

      : C : 프로세스가 사용하는 CPU의 사용률

      : STIME : 프로세스가 시작된 시간

      : STAT : 프로세스의 상태 (top 명령어의 S 필드와 같음)

 

  3) pstree 명령어

    - 실행 중인 프로세스를 트리 형태로 출력하는 명령어

    - 주요 옵션

      : [-c] : 중복된 프로세스도 출력

      : [-n] : PID를 기준으로 정렬하여 출력

      : [-p] : PID도 같이 출력

      : [-u] : UID도 같이 출력

 

  4) pgrep 명령어

    - 지정한 패턴과 일치하는 프로세스에 대한 정보를 출력

    - 주요 옵션

      : [-x] : 패턴과 정확히 일치하는 프로세스 정보를 출력

      : [-u] : 지정한 사용자에 대한 모든 프로세스 출력

    - 출력되는 정보가 많지 않기 때문에 ps 명령어와 같이 사용됨

 

  5) 프로세스 종료 명령어

    - kill 명령어

      : 프로세스에 시그널을 전송하는 명령어

      : 형식 : # kill [시그널] [PID]

      : 옵션을 지정하지 않으면 15번 시그널로 간주되어 실행됨

      : 주요 시그널

      : pgrep 명령어를 이용하면 pkill/killall 명령어와 같은 효과를 볼 수 있음

          EX) # kill `pgrep sleep`

                # kill $(pgrep sleep)

                # killall sleep  전부 같은 결과를 나타냄

      : kill –l : 시그널 이름과 번호를 확인할 수 있는 명령

    - pkill 명령어

      : kill 명령어와 역할이 같지만, PID 대신 해당 명령어의 프로세스를 종료하는 명령어

      : kill 명령어는 지정한 PID의 프로세스 하나만 종료되지만 pkill 명령어는 지정한 명령어에 관련된 여러 프로세스들이 한꺼번에 종료됨

    - killall 명령어

      : pkill 명령어와 기능이 같음

 

  6) 우선순위 관련 명령어

    - nice 명령어 (실행될 때)

      : 지정한 프로세스의 우선순위 (top 명령어의 NI값)를 조정하는 명령어

      : [-n] 옵션으로 우선순위를 조정할 수 있음

          EX) nice -n 15 top  top 명령어의 우선순위를 15 증가

      : 옵션 없이 실행 시 지정한 프로세스의 우선순위를 10 증가시킴

      : nice 명령어로 우선순위를 조정하면 새로운 프로세스가 추가됨

      : 우선순위 범위는 -20 ~ 19 사이의 값으로 우선순위 값이 작을수록 우선순위가 높음

      : 우선순위 값을 낮추는 것 (우선순위가 높아지는 것)은 root만 가능하고 일반 계정은 우선순위 값을 높이는 것만 가능

    - renice 명령어 (실행 중인)

      : 지정한 PID UID/GID의 우선순위를 지정하는 명령어

      : [-u UID|USERNAME] : 지정한 UID 또는 사용자의 모든 프로세스의 우선순위를 지정

      : [-g GID] : 지정한 GID의 모든 프로세스의 우선순위를 지정

      : [-p PID] : 지정한 PID의 우선순위를 지정

      : nice 명령어와 다르게 지정한 우선순위의 값이 바로 설정되고, 새로운 프로세스가 추가되지 않음

          EX) # renice 10 -u fedora -> fedora 사용자의 모든 프로세스의 우선순위를 10으로 지정

 

  7) 백그라운드 작업 관련 명령어

    - jobs 명령어

      : 백그라운드 작업을 출력하는 명령어

      : [-l] : 작업의 PID도 같이 출력

      : [-p PID] : 해당 PID의 작업을 출력

      : [-r] : Running 상태의 작업만 출력

      : [-s] : Stopped 상태의 작업만 출력

      : %[작업번호]로 해당 작업의 정보만 출력할 수 있음

      : 작업번호 뒤에 기호는 가장 최근에 접근한 작업을 의미하고 ‘-’는 ‘+’ 작업 바로 이전에 접근한 작업을 의미

    - nohup 명령어

      : 로그아웃한 후에도 백그라운드에서 작업을 계속 실행하도록 하는 명령어

      : 형식 : # nohup [명령어] &

          EX) # nohup find / -name shell &  ‘find / -name shell’ 명령어를 백그라운드로 작업을 계속 실행하도록 함

    - fg / bg 명령어

      : 지정한 작업번호에 대한 작업을 포그라운드 / 백그라운드 실행으로 옮기는 명령어

          EX) # bg %3  jobs 명령어로 확인한 작업번호 3의 작업을 백그라운드로 실행하도록 함

      : 작업번호 지정 없이 실행 시 가장 최근 작업에 대해 명령을 실행

 

  8) 작업 예약 관련 명령어

    - at 명령어

      : 지정한 시간에 지정한 명령을 한 번만 실행하는 명령어

      : [-l] : 예약 중인 명령어 목록을 출력 a= tq 명령어와 같은 기능

      : [-r] : 지정한 예약된 작업을 삭제 = atrm 명령어와 같은 기능

      : 접근제어 파일 : /etc/at.allow , /etc/at.deny (at.allow 파일 우선)

    - crontab 명령어

      : 지정한 시간에 지정한 명령어를 주기적으로 실행하는 명령어

      : [-e] : 사용자의 crontab 파일을 편집

      : [-l] : crontab 파일의 목록을 출력

      : [-r] : crontab 파일을 삭제

      : crontab 파일 형식 : [분] [시] [일] [월] [요일] [작업내용]

          EX) 30 20 1 * * /usr/bin/ls -l ~fedora > ~fedora/cron.out  매월 1일 20시 30분에 ‘ls -l ~fedora’ 명령의 실행 결과를 cron.out 파일에 저장함

                0 12 22/2 * * 1 /usr/bin/ps -ef  매주 월요일 12시부터 22시 정각 2시간마다 ps -ef 명령어를 실행

                */30 0 2 1 * * /usr/bin/ls -l ~guest > ~root/geust.out  매월 1일 0시부터 2시까지 30분마다 ls -l ~geust’ 명령의 실행 결과를 ~root/guest.out 파일에 저장함

      : 접근제어 파일 : /etc/cron.allow , /etc/cron.deny (cron.allow 파일 우선)

      : /var/spool/cron : 각 사용자들의 cron 설정파일들이 저장된 디렉토리

 

 


해당 블로그를 참고하여 정리했습니다.

https://bangu4.tistory.com/139

 

[Linux Master] 리눅스 마스터 공부법, 기출문제, 요약집

www.ihd.or.kr/main.do KAIT 자격검정 시험접수 정보통신 자격검정 시험 원서등록을 하실 수 있습니다 www.ihd.or.kr 시험에 대한 모든 내용이 홈페이지에 있지만 다시한번 정리하겠습니다. 1급 기준으로 1

bangu4.tistory.com

 

저작자표시 비영리 변경금지 (새창열림)

'자격증 & 공부 > 리눅스마스터 1급' 카테고리의 다른 글

[리눅스마스터1급 - 1차] 2과목 - 5-1. 장치의 설치 및 관리  (1) 2024.06.13
[리눅스마스터1급 - 1차] 2과목 - 4-4. 소프트웨어 설치 및 관리  (0) 2024.06.13
[리눅스마스터1급 - 1차] 2과목 - 4-2. 파일시스템 관리  (1) 2024.06.13
[리눅스마스터1급 - 1차] 2과목 - 4-1. 사용자 관리  (0) 2024.06.13
[리눅스마스터1급 - 1차] 1과목 - 3-2. 네트워크의 이해  (0) 2024.06.13
'자격증 & 공부/리눅스마스터 1급' 카테고리의 다른 글
  • [리눅스마스터1급 - 1차] 2과목 - 5-1. 장치의 설치 및 관리
  • [리눅스마스터1급 - 1차] 2과목 - 4-4. 소프트웨어 설치 및 관리
  • [리눅스마스터1급 - 1차] 2과목 - 4-2. 파일시스템 관리
  • [리눅스마스터1급 - 1차] 2과목 - 4-1. 사용자 관리
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    programmers
    스프링
    리눅스
    리눅스마스터 1급
    Java
    데이터베이스
    CS지식
    postgresql
    Oracle
    스프링부트
    backjoon
    시큐리티
    Flutter
    백준
    python
    프로그래머스
    Spring Security
    리눅스마스터
    플러터
    자바
    Linux
    데이터
    spring
    baekjoon
    springboot
    pcce 기출문제
    DB
    CS
    스프링 부트 쇼핑몰 프로젝트 with JPA
    JPA
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[리눅스마스터1급 - 1차] 2과목 - 4-3. 프로세스 관리
상단으로

티스토리툴바