> 패키지 및 시스템 관리 > init

init: 시스템 초기화 및 프로세스 관리

init은 전통적인 유닉스 및 리눅스 시스템에서 가장 먼저 실행되는 프로세스(PID 1)로, 시스템의 모든 프로세스를 관리하는 부모 프로세스 역할을 합니다. 시스템의 시작(부팅)과 종료를 담당하며, 런레벨(runlevel)을 통해 시스템의 작동 모드를 제어합니다. 최신 리눅스 배포판에서는 systemd로 대체되는 추세입니다.

개요

init은 "초기화"를 의미하며, 시스템 부팅 후 커널이 메모리에 로드된 후 가장 먼저 실행되는 사용자 공간 프로세스입니다. init 프로세스는 다른 모든 프로세스의 부모가 되며, 시스템의 전체적인 상태를 관리합니다. init은 런레벨(runlevel)이라는 개념을 사용하여 다양한 시스템 모드를 정의하고 관리합니다. 현대 리눅스 시스템에서는 대부분 systemd가 이 역할을 대신하고 있지만, 여전히 init 명령어는 systemd 호환성을 위해 유지되고 있습니다.

주요 특징

init 명령어의 주요 특징은 다음과 같습니다.

  • PID(프로세스 ID)가 항상 1번입니다.
  • 모든 프로세스의 부모 역할을 수행합니다.
  • 시스템의 부팅 및 종료를 담당합니다.
  • 런레벨(runlevel)을 통해 시스템 작동 모드를 제어합니다.

런레벨(Runlevel) 설명

init은 런레벨을 사용하여 시스템의 작동 모드를 지정합니다. 각 런레벨은 시스템의 특정 상태를 나타냅니다.

  • 0: 시스템 종료(halt) 모드입니다. 모든 프로세스를 정지시키고 전원을 끕니다.
  • 1: 싱글 유저(Single User) 모드입니다. 시스템 유지보수나 복구 작업에 사용되며, 네트워킹 및 다른 서비스가 비활성화됩니다.
  • 2: 네트워크 파일 시스템(NFS)이 없는 멀티 유저(Multi User) 모드입니다.
  • 3: 모든 서비스가 시작된 멀티 유저(Multi User) 모드로, 텍스트 기반 환경입니다. 서버 환경에서 주로 사용됩니다.
  • 5: 그래픽 환경이 포함된 멀티 유저(Multi User) 모드로, 일반적인 데스크톱 환경입니다.
  • 6: 시스템 재부팅(reboot) 모드입니다.

주요 옵션

init 명령어는 주로 숫자 인자를 사용하여 런레벨을 지정하는 방식으로 사용됩니다. 직접적인 옵션보다는 숫자를 인자로 사용합니다.

1) 런레벨 변경

생성된 명령어:

명령어를 조합해 보세요.

설명:

`init` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

init 명령어의 다양한 사용 예시를 통해 기능을 익혀보세요.

시스템 종료

sudo init 0

시스템을 안전하게 종료합니다. 이는 'shutdown -h now'와 유사한 효과를 가집니다.

싱글 유저 모드로 전환

sudo init 1

파일 시스템 복구나 시스템 점검을 위해 싱글 유저 모드로 전환합니다.

시스템 재부팅

sudo init 6

시스템을 재부팅합니다. 이는 'reboot' 명령어와 유사한 효과를 가집니다.

팁 & 주의사항

init 명령어 사용 시 유의할 점들을 정리했습니다.

  • init 명령어는 root 권한이 필요하므로, 'sudo'를 함께 사용해야 합니다.
  • init 명령어를 사용하는 것은 시스템에 즉각적인 영향을 미치므로, 다른 사용자가 없는 환경에서 신중하게 사용해야 합니다.
  • 현대 리눅스 시스템(Ubuntu, CentOS 등)에서는 init 대신 systemd가 표준이므로, 'shutdown'이나 'reboot', 'systemctl' 명령어를 사용하는 것이 권장됩니다.
  • 런레벨은 주로 /etc/inittab 파일에 정의되어 있지만, systemd를 사용하는 시스템에서는 이 파일이 사용되지 않습니다.

관련 명령어

기능적으로 유사하거나 함께 자주쓰이는 명령어들입니다.


동일 카테고리 명령어