본문 바로가기

Language/Linux

Linux 프로세스 관리

프로세스 작업환경

포그라운드 : 동작 시 화면(터미널)에 나타나는 프로세스

백그라운드 : 동작은 하지만 터미널을 따로 사용 가능

  • 포그 → 백그 실행을 원하면 &을 붙이기
  • 백그 → 포그 실행을 원하면 fg %[n]
  • 이미 작업 중이던 프로세스 → 백그 전환을 원하면 ^z, bg %[n]

프로세스 상태 및 정보 확인

  • ps
    • 프로세스 실행하는 순간의 현재 상태
    • -aux 다양한 정보 출력
  • top
    • 동작 중 프로세스의 상태를 실시간으로 확인 가능
  • uptime
    • load average : 부하 평균 1/5/15분 대한 부하 표시
    • load average 를 cpu 개수로 나눴을 때 합계 1미만
      • lscpu로 cpu개수 확인
  • w
    • 부하 모니터링 가능
  • pstree
    • 트리로 확인 yum -y install psmisc

프로세스 신호 종류

ex) kill 9 PID

  • 1 HUP 프로세스 종료 없이 구성파일 리로드
  • 2 INT 키보드 인터럽트
  • 3 QUIT 키보드 종료 및 덤프 생성
  • 9 KILL 즉각적인 강제적 종료
    • killall 9 sleep → sleep 명령어 전부 삭제
  • 15 TERM 정상적인 종료
  • 18 CONT 중지된 프로세스 다시 시작
  • 19 STOP 프로세스 동작 중지,
  • 20 TSTP 프로세스 동작 중지, 후에 다시 시작

신호전달 명령어

  • pgrep(ps+grep)
    • pgrep -u root -l sl → user가 root인 것 중에 sl단어가 들어가는 프로세스를 리스트화해서 보여주기
  • pkill(pgrep + kill) sleep
    • killall 을 사용하는 것보다 pgrep 명령어로 프로세스를 확인 후 pkill 명령어로 종료하는 것을 권장

데몬프로세스

  • 멀티 테스킹 운영 체제에서 사용자가 직접적으로 제어하지 않고, 백그라운드에서 동작하면서 여러 작업을하는 프로세스
  • 대부분 데몬 프로세스의 단어는 d로 끝난다.
  • 데몬 프로세스는 유닛 단위로 실행한다. 유닛이 합쳐서 다시 새로운 유닛이 될 수 있다. 프로세스는 쓰레드 단위.
  • init에서 systemd로 발전 - 일반적인 서비스 시작 및 서비스 관리를 포함
  • systemctl - 유닛확인
    • systemctl list-units
    • systemctl —type service