개요
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를 사용하는 시스템에서는 이 파일이 사용되지 않습니다.