ps

  • process status
  • 현재 세션의 프로세스를 보여줌
  • ps [옵션]
    • -a : 다른 사용자의 프로세스도 포함하여 보여줌
    • -e : 모든 프로세스를 보여줌
    • -f : 프로세스의 상세한 정보를 포함한 full-format으로 보여줌
    • -l : 프로세스의 더 상세한 정보를 포함한 long-format으로 보여줌
  • PID : 프로세스 ID / TTY : Terminal ID / Time : CPU 시간(누적 시간) / CMD : 프로세스 이름
  • PPID : 부모 프로세스 ID / C : CPU 사용량 / STIME : 프로세스 시작 시간

kill

  • 프로세스를 죽이는 명령어가 아닌, 프로세스에 시그널을 보내는 기능
    • 시그널에 따라서 프로세스에게 특정한 이벤트나 상황을 알리는 기능이 존재
  • Unix Singals
    • SIGHUP : 프로세스를 다시 시작하거나, 구성을 재로드할때 사용 (연관된 터미널이 끊어졌을 때 발생)
    • SIGINT : 프로세스가 인터럽트되어 실행이 중지됨 (Ctrl + C)
    • SIGQUIT : 프로세스를 종료하기 전 디버깅 정보를 생성하고 덤프를 저장함 (Ctrl + \ )
    • SIGKILL : 프로세스 강제 종료
    • SIGSEGV : 프로세스가 잘못된 메모리 위치에 접근하려고 할때 발생함
    • SIGTERM : 프로세스 종료 요청 후 정상적으로 종료
    • SIGTSTP : 프로세스를 일시적으로 중지하고 백그라운드로 이동 (Ctrl + Z)
      • SIGTSTP 시그널을 fore-ground 프로세스에 전달하여 작동을 잠시 정지시킴
      • back-ground에 stopped 상태

Session

  • 로그인한 사용자가 시스템과 상호 작용하는 일련의 작업
  • Session은 일반적으로 사용자가 로그인할 때 시작되고, 로그아웃하거나 시스템 종료 시 종료
  • 세션은 다른 세션과 분리되어 있으므로 사용자는 한 번에 여러 개의 세션을 시작 가능
  • 일반적으로 다른 세션과 격리되어 있으며, 다른 세션에서 실행되는 프로세스와 상호 작용 x
  • 구성요소
    • 로그인 셸 : 사용자가 로그인하면 시스템은 사용자의 로그인 셸을 시작
      • 사용자가 명령어를 입력하고 프로세스를 실행하는 데 사용
    • 프로세스 그룹 : 로그인 셸이 시작된 후에는 셸이 실행하는 모든 프로세스가 프로세스 그룹으로 구성
    • 제어 터미널 : 사용자가 입력한 명령어와 출력 내용을 표시하는 터미널 디바이스
      • 사용자가 로그인하면 시스템은 새로운 제어 터미널을 할당하고, 로그아웃할 때 할당을 해제
    • 환경 변수 : 세션은 환경 변수를 설정하여 사용자가 로그인한 셸과 다른 프로세스에서 사용할 수 있음