본문 바로가기
유닉스, 리눅스

[유닉스/리눅스 기초]프로세스 / 사용자

by TJobim 2016. 9. 13.
반응형

<데몬 프로세스>

  • 유닉스 커널에 의해 실행
  • 특정 서비스 제공위해 존재(ex: http 프로세스)


<부모 프로세스>

  • 다른 프로세스를 만듬
  • 부팅 후 실행되는 1번 프로세스 오 모든 프로세스가 부모 프로세스를 갖음


<자식 프로세스>

  • 부모 프로세스에 의해 만들어진 프로세스
  • 작업을 마친 뒤 부모 프로세스에게 결과를 전달하고 종료됨


<고아 프로세스>

  • 자식 프로세스가 종료되기 전에 부모 프로세스가 종료된 경우
  • 1번 프로세스가 부모 프로세스가 됨


<좀비 프로세스>

  • 자식 프로세스가 종료했지만 프로세스 테이블 목록에 남아있는 경우
  • 부모 프로세스가 종료 정보를 읽어가기를 기다리는 것으로 종료 정보를 제대로 처리하지 않아 발생
  • 프로세스 목록에 defunct 프로세스라고 나오기도 함
  • 이로 인해 프로세스테이블이 꽉 차 다른 프로세스가 실행 할 수 없게 될 수 있음
  • kill 명령으로 제거 안됨. SIGGHLd 시그널을 보내거나 부모 프로세스를 종료하여 처리(새로운 부모(init 프로세스)가 정리).


<프로세스 관리 명령>

  • ps (옵션) : 프로세스 목록 보기
    • (-e) : 시스템에서 실행 중인 모든 프로세스 정보 출력
      • TTY가 ?인 프로세스 : 특정 터미널에서 실행되지 않은 프로세스(대부분 데몬 프로세스)
    • (-f) : 프로세스의 자세한 정보 출력
      • UID : 실행시킨 사용자
      • PID : 프로세스 번호
      • PPID : 부모 프로세스 번호
      • C : 우선순위
      • STIME : 프로세스의 시작 시간(hh:mm:ss)
      • TTY : 프로세스가 실행된 단말기 종류 및 번호
      • TIME : 프로세스 실행 시간
      • CMD : 프로그램 이름(명령)
    • (-u 사용자ID) : 해당 사용자에 대한 모든 프로세스 정보 출력
  • ps -ef | grep 명령 : 명령을 통해 프로세스 검색
  • pgrep (옵션) 패턴 : 패턴과 일치하는 프로세스 정보 출력(솔라리스만 제공)
    • (-x) : 패턴과 정확히 일치하는 프로세스 출력
    • (-n) : 패턴을 포함하고 가장 최근의 프로세스 출력
    • (-u 계정ID) : 해당 사용자의 모든 프로세스 출력
    • (-l) : PID와 프로세스 이름 출력
  • kill (시그널) 프로세스 번호... : 해당 프로세스 종료
    • (-9) : 강제종료
    • (-15) : 관련 파일 정리 후 종료(기본 값)
  • pkill 프로그램 이름(명령) : 해당 프로세스 종료
  • prstar (옵션) : 동작 중인 모드 프로세스르 주기적으로 갱신하여 출력
    • (-a) : 프로세스와 사용자 구분하여 출력
    • (-c) : 중복 출력하지 않고, 아래쪽에 새롭게 출력
    • (-s 정렬)
      • cpu :
      • pri :
      • rss :
      • size :
      • time :
    • (-u 사용자ID) : 해당 사용자와 관련된 프로세스 정보 출력
    • q 입력하여 종료
  • top : prstar의 요약 정보를 상단에 출력하고 하단에 각 프로세스 정보 출력
    • q 입력하여 종료

 


<포그라우드 / 백그라운드 프로세스>

  • 포그라운드 처리(포그라운드 작업)
    • 명령이 실행되어 결과가 출력될 때까지 프롬프트가 출력되지 않아 명령을 입력할 수 없는 처리
    • 실행 결과와 오류 메시지의 출력방향을 전환하여 조용하게 작업 가능
  • 백그라운드 처리(백그라운드 작업)
    • 명령의 처리가 끝남과 상관없이 곧바로 프롬프트가 출려되 다른 작업 가능
    • 여러 프로세스를 동시에 실행시킬 수 있음
    • 명령 마지막에 &(앰퍼샌드)기호 추가하여 적용
    • 다른 작업 중 백그라운드 작업이 종료되면 enter 입력시 종료 메시지 출력
    • 여러 터미널 창을 사용할 경우 xterm 명령을 백그라운드로 실행할 것
    • jobs (옵션) : 실행 중인 백그라운드 작업 출력
      • (%번호) : 해당 버호 작업 정보 출력
      • (%+ / %%) : 작업 순서가 +인 작업 정보 출력
      • (%-) : 작업 순서가 -인 작업 정보 출력
      • 출력항목
        • 작업 번호([3])
        • 작업 순서(+: 가장 최근 접근한 작업, -: + 작업 바로 전에 접근한 작업, 공백: 그 외 작업)
        • 상태(Running, Done, Terminated, Stopped)
        • 명령
  • 작업 전환
    • ^Z / stop (%작업 번호) : 포그라운드 작업 중지(종료X)
    • bg(%작업 번호) : (해당 작업을) 백그라운드 작업으로 전환
    • fg(%작업 번호) : (해당 작업을) 포그라운드 작업으로 전환
    • 현재 실행중인 포그라운드 작업은 중지시킨 뒤 전환해야 함
  • 작업 종료
    • 포그라운드 작업은 Ctrl+C으로 대부분 종료
    • kill 명령 사용(PID 대신 %작업번호 사용 가능)
  • 로그아웃 후 백그라운드 작업 유지
    • nohup 명령& : 로그아웃 후에도 해당 작업 계속 실행


<사용자 정보>

  • users : 현재 시스템에 로그인 한 모든 사용자명 출력
  • who (옵션) : 시스템을 사용중인 사용자 정보 출력
    • (-q) : 사용자명만 출력
    • (-H) : 항목 제목을 포함해서 출력
    • (-b) : 마지막 재부팅 일시 출력
  • w (사용자명) : 현재 작업 정보 출력
  • who am i : who 명령 결과중 자신의 정보만 출력
  • whoami : 현재 사용자의 ID 출력(BSD 계졍 명령)
  • id (옵션) : 사용자의 로그인 ID 및 그룹 정보 출력(uid(사용자번호, gid(그룹번호) 포함)
    • (-a) : 모든 그룹 정보 출력(입력하지 않을 경우 기본 그룹만 출력)
  • su (-) (사용자명) : 사용자 전환
    • (-) : 전환하는 사용자의 초기화 파일을 실행시켜 작업 디렉토리도 변경
    • 사용자면 지정하지 않을 경우 root 사용자로 전환


반응형

댓글