Akashic Records

Linux 프로그램, 프로세스 관리 본문

Operation System Controls

Linux 프로그램, 프로세스 관리

Andrew's Akashic Records 2024. 3. 19. 11:27
728x90

Here's the artistic illustration representing the concept of Linux. I hope you find it captures the essence and global influence of Linux in the tech world!

리눅스에서 프로그램(소프트웨어 패키지) 관리는 주로 배포판에 내장된 패키지 관리 시스템을 사용하여 수행됩니다. 대표적으로 Debian 계열의 apt와 Red Hat 계열의 yum (또는 최근에는 dnf)이 있습니다. 여기 두 시스템을 중심으로 기본적인 명령어들을 설명하겠습니다.

Debian 계열 (apt)

Debian, Ubuntu 등 Debian 계열의 리눅스 배포판에서 사용됩니다.

apt-get update

  • 설명: 패키지 목록을 업데이트하여 사용 가능한 패키지와 그 버전을 최신 정보로 갱신합니다.
  • 옵션: 대부분 옵션 없이 사용됩니다.
  • 예시:
    • sudo apt-get update: 패키지 소스 목록을 업데이트합니다.

apt-get upgrade

  • 설명: 설치된 패키지들을 최신 버전으로 업그레이드합니다.
  • 옵션:
    • -y: 모든 질문에 'yes'로 답변하여 자동으로 진행합니다.
  • 예시:
    • sudo apt-get upgrade: 시스템에 설치된 모든 패키지를 최신 버전으로 업그레이드합니다.

apt-get install

  • 설명: 새로운 패키지를 설치하거나 최신 버전으로 업데이트합니다.
  • 옵션:
    • -y: 설치 중의 질문에 자동으로 'yes'로 응답하여 진행합니다.
  • 예시:
    • sudo apt-get install nginx: 'nginx' 웹 서버를 설치합니다.

apt-get remove

  • 설명: 설치된 패키지를 시스템에서 제거합니다. 하지만 구성 파일은 남겨둡니다.
  • 옵션:
    • --purge: 패키지와 관련된 구성 파일까지 모두 제거합니다.
  • 예시:
    • sudo apt-get remove nginx: 'nginx'를 제거합니다.
    • sudo apt-get remove --purge nginx: 'nginx'와 관련된 구성 파일까지 모두 제거합니다.

Red Hat 계열 (yum / dnf)

CentOS, Fedora 등 Red Hat 계열의 리눅스 배포판에서 사용됩니다.

yum update / dnf update

  • 설명: 시스템의 모든 패키지를 최신 버전으로 업데이트합니다.
  • 옵션:
    • -y: 모든 질문에 자동으로 'yes'로 응답합니다.
  • 예시:
    • sudo yum update: 시스템에 설치된 모든 패키지를 최신 버전으로 업데이트합니다.
    • sudo dnf update: (dnf를 사용하는 시스템에서) 모든 패키지를 최신 버전으로 업데이트합니다.

yum install / dnf install

  • 설명: 새로운 패키지를 설치합니다.
  • 옵션:
    • -y: 설치 중의 질문에 자동으로 'yes'로 응답합니다.
  • 예시:
    • sudo yum install httpd: 'httpd' (Apache 웹 서버)를 설치합니다.
    • sudo dnf install httpd: (dnf를 사용하는 시스템에서) 'httpd'를 설치합니다.

yum remove / dnf remove

  • 설명: 설치된 패키지를 제거합니다.
  • 옵션: 대부분 옵션 없이 사용됩니다.
  • 예시:
    • sudo yum remove httpd: 'httpd

'를 제거합니다.

  • sudo dnf remove httpd: (dnf를 사용하는 시스템에서) 'httpd'를 제거합니다.

각 배포판과 패키지 관리 시스템마다 사용할 수 있는 명령어와 옵션들이 다양하기 때문에, 이 글에서 모든 것을 다루기는 어렵습니다. 특정 명령어에 대해 더 자세히 알고 싶다면, 해당 명령어 뒤에 --help를 붙여 실행하거나 man 명령어를 통해 매뉴얼 페이지에서 확인할 수 있습니다.

리눅스에서 프로세스 관리는 시스템에서 실행 중인 프로그램을 모니터링하고 제어하는 것을 말합니다. 이를 위해 여러 명령어들이 사용되며, 각각의 명령어는 프로세스를 조회, 실행, 중지, 우선순위 조정 등 다양한 작업을 수행할 수 있습니다. 다음은 프로세스 관리를 위한 주요 명령어들의 설명과 사용법입니다.

1. ps (Process Status)

  • 설명: 현재 실행 중인 프로세스의 목록을 보여줍니다.
  • 옵션:
    • -e: 모든 프로세스를 보여줍니다.
    • -f: 전체 포맷으로 보여줍니다, 보다 상세한 정보를 포함합니다.
  • 예시:
    • ps: 현재 셸과 관련된 프로세스들을 보여줍니다.
    • ps -ef: 시스템의 모든 프로세스를 상세 정보와 함께 보여줍니다.

2. top

  • 설명: 현재 실행 중인 프로세스를 동적으로 업데이트하면서 보여주며, 시스템의 상태를 요약해서 보여줍니다.
  • 옵션: 이 명령어는 실행 중인 상태에서 다양한 옵션을 사용할 수 있습니다.
  • 예시:
    • top: 프로세스 리스트와 시스템 상태를 실시간으로 보여줍니다.

3. kill

  • 설명: 특정 프로세스에 신호를 보내어 종료시킵니다.
  • 옵션:
    • -9: 강제 종료 신호를 보냅니다. 가장 강력하며, 무시할 수 없는 종료 신호입니다.
  • 예시:
    • kill -9 1234: PID(Process ID)가 1234인 프로세스를 강제로 종료시킵니다.

4. pkill

  • 설명: 프로세스의 이름으로 프로세스에 신호를 보내어 종료시킵니다.
  • 옵션:
    • -9: 강제 종료 신호를 보냅니다.
  • 예시:
    • pkill -9 nginx: 'nginx'라는 이름을 가진 모든 프로세스를 강제로 종료시킵니다.

5. htop (Advanced top)

  • 설명: top 명령어의 향상된 버전으로, 시각적 인터페이스를 통해 프로세스 관리를 더욱 편리하게 합니다.
  • 옵션: 이 명령어는 옵션보다는 인터랙티브 모드에서의 사용이 더 중요합니다.
  • 예시:
    • htop: 인터랙티브한 프로세스 뷰어를 실행합니다.

6. nice

  • 설명: 프로세스를 시작할 때의 우선순위(niceness)를 설정합니다. 우선순위는 -20에서 19까지의 범위를 가지며, 낮을수록 높은 우선순위를 갖습니다.
  • 옵션:
    • [niceness]: 우선순위 값
  • 예시:
    • nice -n 10 command: command를 niceness 값 10으로 실행합니다.

7. renice

  • 설명: 실행 중인 프로세스의 우선순위를 변경합니다.
  • 옵션:
    • [niceness]: 새로운 우선순위 값
  • 예시:
    • renice 10 -p 1234: PID가 1234인 프로세스의 우선순위를 10으로 변경합니다.

8. nohup

  • 설명: 터미널이 종료되거나 로그아웃되어도 특정 명령어를 계속 실행되게 합니다.
  • 옵션: 대부분 옵션 없이 사용됩니다.
  • 예시:
    • nohup command &: command를 백그라운드에서 실행하며, 터미널 종료 후에도 계속 실행되도록 합니다.

이 명령어들은 프로세스를 효율적으로 관리하고 모니터링하는 데 필수적입니다. 각 명령어는 특정 상황에 맞게 사용될 수 있으며, 더 복잡한 작업을 위해 함께 사용될 수도 있습니다. 각 명령어의 사용법을 더 깊이 이해하려면, 해당 명령어 뒤에 --help를 붙여 실행하거나, man 명령어를 통해 매뉴얼 페이지에서 확인할 수 있습니다.

728x90
Comments