Solaris 공통 데스크탑 환경: 사용 설명서

19장 프로세스 관리자의 사용

프로세스 관리자를 사용하여 사용자의 워크스테이션에서 실행하고 있는 프로세스를 표시하고 활동을 수행하십시오. ps(1),truss(1), kill(1) 및 기타 문자 기반 명령의 구문을 몰라도 이 관리자를 사용할 수 있습니다. 해당되는 곳에 같은 역할을 하는 UNIX 명령이 프로세스 관리자 활동에 대해 제시됩니다.

프로세스 정보

UNIX는 프로세스로 작동합니다. 사용자의 로그인 쉘, 응용프로그램, 실행 편집 세션 그리고 파일을 나열하는 ls 프로그램도 모두 운영 환경의 제어하에 있는 프로세스들입니다.

UNIX에서 사용자는 이러한 프로세스에 대해 동작을 취할 수 있습니다. 예를 들어, 어느 때라도 실행하고 있는 모든 프로그램을 살펴볼 수 있으며, 선택한 프로그램을 중단하고 다시 시작할 수도 있으며, 오류 프로세스를 검사하여 오류를 제거할 수도 있습니다.

오류 프로세스 찾아내기 힌트

오류 프로세스는 실행되어야 하는 작업이 수행되지 않는 것을 말합니다. 예를 들어, 버그 때문에 사용 가능한 자원의 상당 부분을 프로세스가 사용하거나, 혹은 또 다른 프로세스를 간섭하기도 합니다. 다음과 같은 문제점이 발견되면 프로세스 관리자를 사용하여 오류 프로세스를 검출할 수 있습니다.

수행되고 있는 프로세스를 모두 표시할 경우, 프로세스 관리자는 일반적으로 30개에서 50개 정도의 프로세스들을 나타내기 때문에 전문가가 아닌 사람이 오류 프로세스를 찾는 것은 어려운 일입니다. 다음의 방법이 도움이 될 것입니다(그래도 찾을 수 없으면 시스템 관리자에게 문의하십시오).

프로세스 정보를 측정, 표시 및 저장하기

프로세스 관리자는 사용자의 워크스테이션에서 실행되고 있는 프로세스를 표시하고 액세스를 제공합니다.

그림 19–1 문자열 “audio”를 포함하는 프로세스 항목을 보여주는 프로세스 관리자

Graphic

목록에 있는 모든 프로세스 항목은 다음 표에 설명된 것처럼 유용한 정보를 제공합니다.

 열 표제 의미
 ID   프로세스 ID
 이름 프로세스 이름
 소유자  소유자 이름
 CPU% 같은 기간내 사용 가능한 시간에 대한 CPU 최근 사용 시간의 비율. 백분율로 표시됨
 RAM 이 프로세스가 현재 차지하는 RAM의 양
 교체 가상 메모리의 전체 크기
 시작 시간 실제 시작 시간(또는 오늘 이외의 날짜)
 상위  상위 프로세서의 프로세스 ID, 즉 PPID
 명령 실행되는 실제 UNIX 명령 (뒷부분이 생략된)

선택된 워크스테이션의 모든 프로세스에 아무런 영향을 주지 않으면서 다음 활동을 수행할 수 있습니다.

프로세스 관리자를 여는 방법

    프론트 패널의 도구 부속 패널에 있는 프로세스 찾기 제어기를 누르십시오.

    프로세스 관리자 주 창이 나타납니다. 즉시 워크스테이션을 측정하여 현재의 모든 프로세스 표본을 표시합니다.

프로세스의 일부를 표시하는 방법

  1. 프로세스 관리자 창의 필터 필드에 필터 텍스트를 입력하십시오.

    필터 텍스트는 표시하고자 하는 일부 프로세스 항목이나 프로세스 그룹에 공통된 문자열이어야 합니다. 예를 들어, 그림 19–1에서는 사용자가 오디오 도구와 관련되는 모든 프로세스를 보여주고 있습니다.

  2. Return 키를 누르십시오.

    프로세스 관리자는 이동 표시 영역에 있는 프로세스를 갱신하여 필터 텍스트와 정확히 일치하는 프로세스 항목만 포함시킵니다.

  3. 다시 모든 프로세스를 표시하려면, 필터 필드를 삭제하고 Return 키를 누르십시오.

프로세스를 찾는 방법

  1. 찾기 드롭다운 상자에 검색 텍스트를 입력하거나 찾기 드롭다운 목록에서 전에 사용했던 검색 텍스트를 선택하십시오.

    검색 텍스트는 표시하고자 하는 모든 프로세스의 항목에 공통된 문자열이어야 합니다.

  2. 현재 커서 위치 이후로 처음 발생된 검색 텍스트를 반전 표시하려면 Return 키를 누르십시오.

    텍스트는 프로세스 항목의 임의의 필드에 있을 수 있습니다.

  3. 다음 출현을 반전 표시하려면 Return 키를 누르십시오.

  4. 원하는 프로세스 항목을 발견하면 찾기 필드를 삭제합니다.


    주 –

    이동 표시 영역 마지막에 도달하면, 검색을 목록의 처음으로 되돌릴 수 없습니다. 따라서 프로세스를 모두 검색하려면 찾기 상자에 검색 텍스트를 입력하기 전에 목록에서 첫번째 프로세스 항목을 선택하십시오.


표시 정렬 순서 변경 방법

기본적으로 프로세스 관리자는 프로세스 항목을 CPU 사용량의 내림차순으로 나열합니다. 사용자는 이를 식별할 수 있는데, CPU 사용량 열 위의 열 제목(CPU %)은 들어간 채로 표시되어 있으나 다른 열 제목은 튀어 나와있기 때문입니다.

  1. 프로세스 항목의 목록이 정렬될 열을 선택하려면 해당 열 제목을 누르거나 보기 메뉴에서 열 이름을 선택하십시오.

    프로세스 관리자는 프로세스 항목의 목록을 정렬하고 이를 새로운 순서로 표시합니다. 각 열의 기본 순서는 다음 표에 표시되어 있습니다.

    표 19–1 프로세스 항목의 기본 표시 순서
     선택된 열 표제 방식
     ID  프로세스 ID를 숫자의 올림차순으로 정렬
     이름 프로세스 이름을 알파벳 순서로 정렬
     소유자  소유자 이름을 알파벳 순서로 정렬
     CPU% CPU 사용을 숫자의 내림차순으로 정렬
     RAM RAM 사용을 숫자의 내림차순으로 정렬
     교체 스왑 공간 사용을 숫자의 내림차순으로 정렬
     시작 시간 실제 시작 시간을 연대순의 내림차순으로 정렬
     상위  상위 프로세스의 프로세스 ID를 숫자의 내림차순으로 정렬
     명령 전체 경로명을 알파벳 및 숫자의 내림차순으로 정렬(/과 같은 특수 문자는 일반 문자보다 낮은 정렬 값을 가짐)

  2. (선택) 이러한 열의 정렬 순서를 반대로 하려면 (예를 들어 RAM 사용량을 오름차순으로 정렬하려면) 들어간 형태로 표시된 열 표제 버튼을 누르십시오.

    열 제목 영역이 검은 색으로 변하면서 역순으로 정렬합니다.

    Graphic

측정 간격 변경 방법

기본적으로 프로세스 관리자는 30초마다 워크스테이션을 측정하고 표시 장치를 갱신합니다.

    연속 측정 모드를 비활성화/활성화하려면 측정 메뉴에서 멈춤/시작을 선택하십시오.

    연속 측정 모드가 활성화되면 측정 메뉴에서 멈춤 메뉴 항목을 볼 수 있습니다. 반대의 경우에는 메뉴 항목에 시작이 나타납니다.

    표본 사이의 간격을 변경하려면 측정 간격 상자에서 초단위 수를 입력하십시오(최대 604800초, 즉 14일 까지).

    새로운 측정 빈도를 적용하려면 Return 키를 누르십시오.

    즉시 표본을 수집하려면 측정 메뉴에서 지금을 누르십시오.

    프로세스 관리자는 표본을 수집하고 표시 사항을 갱신합니다.

복사하기 및 저장하기

표시 장치에 있는 하나 이상의 프로세스 항목을 선택하고 복사하여 다른 응용프로그램에 텍스트를 붙여넣을 수 있습니다.

측정 데이터를 파일에 저장하기 위해서는 다음 옵션이 선택되어야 합니다.

현재의 표본을 포함하는 파일을 작성하는 방법

  1. 측정 메뉴에서 새 이름으로 저장을 선택하십시오.

    프로세스 관리자는 새 이름으로 저장 대화 상자를 표시합니다.

  2. 새 파일의 이름과 위치를 지정하고 확인을 누르십시오.

    프로세스 관리자는 현재의 표시 목록에서 프로세스 항목을 포함하는 텍스트 파일을 작성합니다.

로그 파일을 설정하는 방법

  1. 측정 메뉴에서 로그 파일을 선택하십시오.

    프로세스 관리자는 로그 파일 대화 상자를 표시합니다.

  2. 새 파일의 이름과 위치를 지정하고 확인을 누르십시오.

    프로세스 관리자는 텍스트 파일을 만들고 각각의 새 표본(헤더 정보와 함께)을 파일에 첨부합니다.


    주의 – 주의 –

    프로세스 관리자는 프로세스 관리자 응용프로그램을 종료할 때까지 또는 측정 메뉴에서 로그 중단을 선택할 때까지 계속해서 이 파일에 첨부합니다.


선택된 프로세스의 활동 수행하기

목록에서 프로세스 항목을 식별하고 선택했으면, 프로세스에 대해 다음과 같은 동작들을 수행할 수 있습니다.


주의 – 주의 –

이러한 절차를 수행하는 것의 의미를 잘 모르면 시스템 관리자에게 문의하십시오.


프로세스에 강제 종료 신호 보내기

UNIX에서의 강제 종료 명령은 사용자가 프로세스에 신호를 전송할 수 있도록 해줍니다. 신호는 프로세스를 인터럽트를 걸어 응답을 시키기 위해 프로세스에 보내는 메시지입니다. 프로세스가 전송된 유형의 신호에 응답하도록 설계되었으면 응답하고, 그렇지 않으면 종료됩니다. 다음 표는 일반적으로 사용되는 몇 개의 신호 번호/이름과 그 의미를 설명한 것입니다.

 신호 번호 신호 이름 의미
 1  HUP 끊기(로그아웃하기 전에 사용하기도 함)
 2  INT 인터럽트(터미널 세션에서 Ctrl+C를 누르는 것과 동일함)
 9  KILL

강제 종료(정리하지 않고 종료함) 

프로세스 소유자나 수퍼유저(루트)가 발행하는 경우에만 작동 

프로그램이 이 신호에 응답할 수 없으며 따라서 종료해야 합니다. 

 15  TERM

강제 종료(정리한 후에 깨끗하게 종료함) 

프로세스 소유자나 수퍼유저(루트)가 발행하는 경우에만 작동 

강제 종료 메뉴 항목을 통해 강제 종료 (9) 신호를 프로세스에 보내서 해당 프로세스를 신속하게 강제 종료할 수 있습니다. 신호 메뉴 항목들은 kill(1) 명령에 의해 보내지는 신호를 더 제어할 수 있게 해줍니다. 예를 들어, INT 신호 또는 HUP 신호 등을 보낼 수 있습니다.


주의 – 주의 –

신호를 프로세스에 전송하는 의미를 이해하는 경우에만 신호를 프로세스에 전송해야 합니다. 예를 들어, 로그인 쉘을 선택하고 강제 종료 신호를 보내면, 갑자기 로그아웃됩니다. 프로세스와 작업 제어기에 대한 자세한 내용은 시스템 관리자에 문의하거나 Solaris Advanced User's Guide(Sun Microsystems)를 참조하십시오.


프로세스를 강제 종료하는 방법(빠른 강제 종료)

  1. 프로세스 관리자 이동 표시 영역에 있는 프로세스 항목을 선택하십시오.

  2. 프로세스 메뉴에서 강제 종료를 선택하십시오.

    사용자가 프로세스를 강제 종료할 수 있는 권한을 가지고 있다면 프로세스 관리자가 프로세스(및 자식 프로세스)를 강제 종료합니다. 그렇지 않다면 오류가 표시됩니다. 프로세스를 종료하는데 몇 초씩 걸리는 경우도 있습니다. 프로세스 관리자가 다음 번 표시를 갱신했을 때 강제 종료시킨 프로세스가 나타나지 않으면, 그 프로세스가 강제 종료되었음을 알 수 있습니다.


    정보 –

    동일한 UNIX 명령:

    kill -9 PID 여기서 PID는 선택된 프로세스의 프로세스 ID입니다.

    아래의 파일에 '강제 종료'라고 된 동작을 재정의하여 강제 종료 메뉴 항목으로 수행된 명령을 다른 명령으로 재정의할 수 있습니다.

    /usr/dt/appconfig/types/C/sdtprocess.dt


신호를 프로세스에 보내는 방법

  1. 프로세스 관리자 이동 표시 영역에 있는 프로세스 항목을 선택하십시오.

  2. 프로세스 메뉴에서 신호를 선택하십시오.

    프로세스 관리자는 사용자에게 신호를 지정하도록 요청하는 대화 상자를 표시합니다. 사용자는 signal(5) 설명서 페이지에 정의된 42개의 신호 중 최소한 하나를 반드시 제공해야 합니다.

  3. 관련 신호 번호와 이름을 입력하고 확인을 누르십시오.

    프로세스 관리자는 신호 명령을 내리고 대화 상자를 닫습니다. 완료 메시지는 나타나지 않습니다. 프로세스 강제 종료는 일반적으로 그 자식 프로세스들도 종료합니다.


정보 –

동일한 UNIX 명령: kill -signum_name PID

-signum_name은 신호의 번호나 이름이고 PID는 선택된 프로세스의 프로세스 ID입니다.


프로세스의 사용자를 찾는 방법

  1. 프로세스 관리자 이동 표시 영역에 있는 프로세스 항목을 선택하십시오.

  2. 프로세스 메뉴에서 소유자 찾기를 선택하십시오.

    프로세스 관리자는 주소 관리자를 열고 선택된 프로세스의 시스템 사용자 이름의 시스템 카드를 검색하도록 요청합니다. 주소 관리자에 대한 세부 사항은 제 18 장을 참조하십시오.

프로세스의 계보를 보는 방법

  1. 프로세스 관리자 이동 표시 영역에 있는 프로세스 항목을 선택하십시오.

  2. 프로세스 메뉴에서 조상 보기를 선택하십시오.

    프로세스 관리자는 지정된 프로세스의 프로세스 트리를 포함하는 창을 표시합니다. 자식 프로세스는 각자의 상위 프로세스에서 안쪽으로 들어가 표시됩니다.

    Graphic

정보 –

동일한 UNIX 명령:

/usr/proc/bin/ptree PID

PID는 선택된 프로세스의 프로세스 ID입니다.


자식 프로세스를 추적하는 방법

하나의 UNIX 프로세스가 하나 이상의 상관 프로세스를 파생시키면, 이를 자식 프로세스 또는 하위라고 합니다. 자식 및 부모 프로세스는 같은 사용자 ID를 갖습니다.

  1. 프로세스 관리자 이동 표시 영역에 있는 프로세스 항목을 선택하십시오.

  2. 프로세스 메뉴에서 자식 추적을 선택하십시오.

    프로세스 관리자는 선택된 프로세스의 새로운 하위(및 그들의 하위, 반복적으로)의 생성 기록을 표시합니다.

    Intro(2) 설명서 페이지에 설명된 오류 코드 이름을 사용하여 오류 발생을 보고합니다.


    정보 –

    동일한 UNIX 명령:

    truss -fa -texec,fork -s|CLD,ALRM -p PID

    PID는 선택된 프로세스의 프로세스 ID입니다.


시스템 호출을 추적하는 방법

실행하는 동안에 프로세스는 UNIX 커널이나 시스템에 호출을 합니다. 시스템 호출이 다른 프로세스에 주는 영향을 알아보기 위해 시스템 호출을 추적할 수 있습니다.

  1. 프로세스 관리자 이동 표시 영역에 있는 프로세스 항목을 선택하십시오.

  2. 프로세스 메뉴에서 시스템 호출 추적을 선택하십시오.

    프로세스 관리자는 선택 사항 인수를 입력하도록 요청하는 대화 상자를 표시합니다.

  3. 확인을 누르십시오.

    추적 결과 출력의 각 행은 오류나 신호 이름 또는 시스템 호출 이름을 인수와 반환 값과 함께 보고합니다. 추가 정보를 보려면 truss(1 ) 설명서 페이지를 참조하십시오.


정보 –

동일한 UNIX 명령:

truss -p PID

PID는 선택된 프로세스의 프로세스 ID입니다.


프로세스의 스택을 표시하는 방법

  1. 프로세스 관리자 이동 표시 영역에 있는 프로세스 항목을 선택하십시오.

  2. 프로세스 메뉴에서 스택 보기를 선택하십시오.

    프로세스 관리자는 선택된 프로세스의 16진수 및 기호 스택 추적이 포함된 창을 표시합니다.


정보 –

동일한 UNIX 명령:

/usr/proc/bin/pstack PID

PID는 선택된 프로세스의 프로세스 ID입니다.


프로세스를 디버그하는 방법

응용프로그램 개발자들과 시스템 관리자들은 오류 프로세스를 검사하기 위해 Sun Workshop과 같은 오류 제거 응용프로그램을 사용합니다. 프로세스 메뉴의 오류 제거 항목은 선택한 프로세스에서 사용자가 선호하는 디버거를 실행시킵니다.

    사용자가 선호하는 디버거를 사용하여 프로세스의 오류를 제거합니다.


정보 –

동일한 UNIX 명령:

workshop -d command

workshop은 디버거 프로그램의 이름이고 command는 디버거에 프로세스 ID를 전달하는데 필요한 명령입니다.