ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리눅스마스터2급 정리 003. 프로세스 개념 및 유형, Utility
    자격증/리눅스 마스터 2020. 6. 25. 07:09
    반응형

    1. 프로세스 관리

     1) 프로세스 : CPU와 메모리 할당을 받아 실행중인 프로그램, 프로세스들 마다 고유의 PID(Process ID)를 할당 받는다.

      - 최초의 프로세스인 init은 PID번호가 1이다.

      (1) ps (process status) : 현재 실행중인 프로세스 상태를 보여준다.

      * CPU 사용도가 낮은 순서로 출력하고, NICE 값은 프로세스 실행 우선순위를 결정

      (2) jobs : 특정 사용자가 백그라운드로 실행중인 프로세스를 확인할 때 사용한다.

        * 백드라운드에서 프로세스를 포그라운드 프로세스로 전환할 때 : fg%작업번호
        * jobs 명령 실행 시 +가 추로 처리되는 프로세스로 + 기호가 붙은 작업의  다음 우선순위의 작업이다.
        * [ctrl] + [z] : 포그라운드 프로세스를 백그라운드 프로세스로 전환할 때 사용한다. : 시그널 번호 20 ([ctrl] + [c] : 시그널 번호 : 2)

      (3) fork : 프로세스 생성의 한 방법으로 새로운 프로세스를 원래의 프로세스의 자식 프로세스로 관리하는 방식

      (4) exec : 원래의 프로세스를 새로운 프로세스로 대체하는 형태로 호출한 프로세스의 메모리에 새로운 프로세스의 코드로 덮어씌운다.

     

      (5) inetd : 지속적인 서비스 요청을 처리하기 위해 관련 데몬이 메모리에 계속 상주하면서 처리하는 것이 아니라, 특정 데몬이 여러 데몬을 관리하면서 서비스 요청이 들어왔을 때 관련 프로세스를 메모리에 상주시키는 방식, standalone 방식보다 메모리 관리가 더 효율적이다.

      (6) top : 리눅스 시스템의 운영 상태를 실시간으로 모니터링하거나 프로세스 상태를 확인할 수 있다. 동작중인 프로세스를 종료, 우선순위 변경, 메모리 사용률을 확인할 수 있지만, 디스크 사용률을 확인할 수는 없다.
     ( top 실행상태에서 프로세스와 CPU 항목을 on/off 하는 명령은 t이다. )
      ex) top -d 1 -p 8080

      * d 옵션을 사용하여 1초 간격으로 상태 갱신, 프로세스 상태 뿐만 아니라 CPU, 메모리, 부하 상태 등을 확인할 수 있다.

       (7) nohup : 프로세스가 중단되지 않고 백그라운드로 작업을 수행할 수 있게 한다. 데이터 압축 해제같은 실행이 오래 걸리는 프로세스들에 대해 nohup으로 처리할 수 있다.

      * 실행한 명령을 자동으로 백그라운드로 보내지 않고, 사용자가 명령행 뒤에 &를 명시해야한다.
      * 실행중인 프로세스의 표준 출력과 에러는 'nohup.out' 라는 파일을 생성하여 기록한다.

      * cron을 이용해서 시스템 운영에 필요한 작업을 예약할 때는 /etc/crontab

    (8) nice : 프로세스가 실행될 때 실행 우선순위를 조정 (NI값 변경)

       * 큰 프로그램을 컴파일 할 때와 같이 CPU나 메모리를 많이 쓰게 될 경우, 시스템 속도를 저하시키기 때문에 다른 프로세스에게 우선순위 값을 줄 때 사용
      * 기본 nice 값은 보통 0으로 시작하며, -20 ~ 19 까지 순위 값을 조정할 수 있다.
      * NI 값이 적을수록 우선순위가 높고, 기본값은 0이며, -20 ~ 19까지이다.
      * nice 명령어 사용시 값을 지정하지 않으면 기본적으로 NI 값이 10이 지정된다.
      * 일반 사용자는 nice값을 증가시킬 수 밖에 없고, root 는 nice 값을 감소시켜 우선순위를 높일 수 있다.
      * renice : 실행중인 프로세스에 대한 nice 값을 변경, PID로 우선순위를 조정하고, 기존의 프로세스 우선순위값을 추가없이 수정한다.

     

     

     2) 데몬(Daemon) : 리눅스 시스템이 부팅 시 자동으로 실행되는 백그라운드 프로세스

      - 메모리에 상주하면서 사용자의 특정 요청이 오면 즉시 실행되는 대기 중인 서버 프로세스
      - 주기적이고 지속적인 서비스 요청을 처리하기 위해 실행된다.
      - 사용자들은 이 프로세스들을 볼 수 있는 권한은 없고, root 계정이 있다.

      * pstree : 프로세스의 상관관계를 트리 형태로 출력해주는 명령어

      옵션
        -a : 지정한 인수까지 출력
        -h : 현재 프로세스와 부모 프로세스를 하이라이트 형태로 출력
        -c : 중복된 프로세스도 모드 출력
        -H pid : 지정한 pid의 프로세스와 부모 프로세스를 하이라이트 형태로 출력

    * SIG

      1) SIGHUP : 터미널과 연결이 끊어졌을 때 / 재시작
      2) SIGINT : 종료, Ctrl + C
      3) SIGKILL : 프로세스 강제 종료 시
      4) SIGTERM : kill 시스템 호출 시
      5) SIGTSTP : Ctrl + Z, 포그라운드로 실행 중이던 프로세스를 Suspend로 전환

    반응형
Designed by Tistory.