Linux 시스템 의 실행 단계 (Run Level)

 
리 눅 스 운영 체 제 는 시작 이 끝 날 때 까지 몇 가지 다른 단 계 를 거 쳐 야 한다. 이 몇 단 계 는 Runlevel 이 라 고 한다. 마찬가지 로 리 눅 스 운영 체제 가 닫 혔 을 때 도 다른 Runlevel 을 거 쳐 야 한다. 다음은 Runlevel 을 상세 하 게 소개 하고 리 눅 스 시스템 이 불필요 한 재 시작 을 피 할 수 있 도록 작은 기 교 를 보 여 준다.
 
Runlevel 은 시스템 상태, 이미지 라 고 볼 수 있 습 니 다. Runlevel 은 마이크로소프트 Windows 운영 체제 의 정상 적 인 시작 (Normal), 보안 모드 (Safemode) 와 Command prompt only 와 같다 고 볼 수 있 습 니 다.모든 Runlevel 에 들 어가 면 일련의 서비스 (Services) 를 시작 하거나 닫 아야 합 니 다. 이 서비스 (Services) 들 은 스 크 립 트 를 초기 화 하 는 방식 으로 디 렉 터 리/etc/rc. d/rc?d/또는/etc/rc?아래(? Runlevel 을 대표 하 는 대응 번호).
 
    대부분의 리 눅 스 버 전에 서 는 보통 8 개의 런 레벨 시스템 상태 (Runlevel System State) 가 있 습 니 다.
 
  • 0 Halt the system 정지 (initdefault 를 0 으로 설정 하지 마 세 요), 기계 종료
  • 1 Single user mode 단일 사용자 모드, Win9x 의 보안 모드 와 유사
  • 2 Basic multi user mode 기본 다 중 사용자 모드, NFS 지원 없 음
  • 3 Multi user mode 의 완전한 다 중 사용자 모드 로 표준 운행 등급
  • 4 None 은 보통 사용 하지 않 고 특수 한 상황 에서 그것 으로 뭔 가 를 할 수 있다.예 를 들 어 노트북 의 배터리 가 다 떨 어 졌 을 때 이 모드 로 전환 하여 설정 을 할 수 있 습 니 다.
  • 5 Multi user mode with GUI 는 X11 로 XWindow 시스템 에 들 어 갔다
  • 6 Reboot the system 재 시작 (initdefault 을 6 으로 설정 하지 마 세 요) init 6 기 계 를 실행 하면 다시 시작 합 니 다
  • S, s Single user mode

  •     서로 다른 운행 등급 은 서로 다른 용도 가 있 고 자신의 상황 에 따라 설정 해 야 한다.예 를 들 어 루트 암 호 를 잃 어 버 리 면 기 계 를 단일 사용자 상태 로 시작 하여 설정 할 수 있 습 니 다.시작 후 lilo 프롬프트 에 입력:
    init=/bin/sh rw 
    #或者 
    #linux 1;linux single

     
        기 계 를 실행 단계 1 에 들 어가 루트 파일 시스템 을 읽 기와 쓰기 로 걸 수 있 습 니 다.그 는 모든 시스템 인증 을 건 너 뛰 고 passwd 프로그램 을 사용 하여 루트 암 호 를 바 꾸 고 새로운 실행 단계 로 시작 할 것 입 니 다.
     
        대부분의 데스크 톱 의 Linux 시스템 이 결 성 된 Runlevel 은 5 이 고 사용자 가 로그 인 할 때 그래 픽 인터페이스 이 며 대부분의 서버 버 전의 Linux 시스템 이 결 성 된 Runlevel 은 3 이 며 사용자 가 로그 인 할 때 문자 인터페이스 이 며 Runlevel 은 1 과 2 로 디 버 깅 을 제외 하고 거의 사용 되 지 않 습 니 다. Runlevel 은 s 와 S 로 사용자 에 게 직접 사용 하 는 것 이 아니 라 Single user mode 로 준비 합 니 다.
     
        Linux 의 실행 모드 는 Windows 의 시작 모드 보다 장점 이 있 습 니 다. 시스템 이 비어 있 을 때. init 도 구 를 사용 하여 현재 사용 하고 있 는 Runlevel 을 전환 할 수 있 습 니 다. 또한 Linux 시스템 을 닫 거나 시작 할 때 자신 도 모 르 는 사이 에 Runlevel 을 전환 할 수 있 습 니 다. 시스템 이 꺼 져 있 을 때 Runlevel (0 또는 6) 을 사용 하여 실행 중인 모든 프로 세 스 를 닫 아야 합 니 다.
     
    현재 실행 모드 보이 기
     
        처음 들 어 왔 을 때 이전 과 현재 사용 중인 실행 모드 에 대해 궁금 할 수도 있 습 니 다. Runlevel 명령 은 이 정 보 를 표시 할 수 있 습 니 다.
    $ runlevel
    3 5
        Runlevel 명령 의 출력 결과 최초의 실행 모드 는 3 이 고 현재 실행 모드 는 5 입 니 다.
     
    실행 모드 전환
        실행 모드 전환 telinit 명령 사용 (루트 사용자):
    $ telinit

     
        일반적으로 실행 모드 를 전환 하 는 목적 은 일부 응용 프로 세 스 를 다시 시작 하 는 것 입 니 다. 예 를 들 어 XFree 86 은 실행 모드 를 5 에서 3 으로 전환 하면 XFree 86 과 관련 된 모든 프로 세 스 를 종료 한 다음 에 실행 모드 를 5 로 전환 하면 XFree 86 은 깨끗하게 시작 할 수 있 습 니 다.이 작업 을 하기 전에 XFree 86 에서 의 모든 작업 이 저장 되 었 는 지 확인 하 십시오. 루트 사용자 로:
    $ telinit 3
    $ telinit 5

     
        명령 을 입력 하면 서비스 가 시작 되 거나 중 단 된 정 보 를 화면 에 표시 할 수 있 습 니 다.
     
    실행 모드 에 시작 서비스 추가
     
        어떤 실행 모드 에 시작 서 비 스 를 추가 하려 면 먼저 이 서비스 시작 스 크 립 트 를 새로 만 든 다음/etc/rc. d/init. d 또는/etc/init. d/(리 눅 스 버 전에 따라 다 름) 에 두 어야 합 니 다. 이 시작 스 크 립 트 를 실행 모드 와 연결 하려 면 이 실행 모드 디 렉 터 리 아래 에/etc/rc. d/init. d/아래 시작 스 크 립 트 의 symbolic link 를 만들어 야 합 니 다.파일 이름 의 접 두 사 는 보통 SXX 이 고 XX 는 숫자 입 니 다. 이 숫자 는 이 실행 모드 에서 서비스의 시작 순 서 를 제어 하 는 데 사 용 됩 니 다.스 크 립 트 의 실행 순 서 는 숫자 크기 의 오름차 순 으로 실 행 됩 니 다. 즉, 숫자 가 작 을 수록 먼저 실 행 됩 니 다. 다음은 실행 모드 에 시작 서 비 스 를 추가 하 는 구체 적 인 예 입 니 다.
    $ cp myservice /etc/rc.d/init.d/
    $ ln -s /etc/rc.d/init.d/myservice /etc/rc3.d/S99myservice

     
        이렇게 하면 다음 에 Runlevel 3 으로 시작 하면 my service 가 자동 으로 시 작 됩 니 다.
     
    어떤 Runlevel 로 시작 하기
        시작 할 때 들 어 가 는 Runlevel 을 스스로 만 들 수 있 습 니 다. 시스템 이 lilo 를 사용한다 면 시작 명령 에 해당 하 는 부분 은 다음 과 같 습 니 다.
    LILO: Linux 5
     
        GRUB 를 사용한다 면 시작 할 때 e 키 를 누 르 고 설정 모드 로 들 어 갈 수 있 습 니 다. 해당 위 치 는 다음 과 같 습 니 다.
    kernel/vmlinuz ro root=/dev/hda1 5
     
    Ubuntu 의 런 레벨
        기본적으로 설 치 된 우 분투 리 눅 스 는 그래 픽 인터페이스 로 바로 이동 합 니 다.그러나 나 는 그래 픽 인터페이스 에서 일 할 필요 가 없 을 때 가 많다. 문자 인터페이스의 명령 줄 이면 충분 하 다.RedHat 에서 기본 실행 단계 (Runlevel) 를 5 에서 3 으로 변경 할 수 있 는/etc/inittab 를 수정 할 수 있다 는 것 을 떠 올 리 면 불행 하 게 도 Ubuntu 에는 이 파일 이 없습니다.하지만 우 분투 도 inittab 를 호 환 할 수 있 지만 직접 만들어 야 할 뿐 입 니 다.
     
        Ubuntu 설치 후 기본 Runlevel 은 2 이 며, 이 는 runlevel 명령 으로 볼 수 있 습 니 다.runlevel = 2 이기 때문에 시작 과정 에서/etc/rc2. d/디 렉 터 리 의 S 로 시작 하 는 스 크 립 트 를 자동 으로 실행 합 니 다.우 분투 가 그래 픽 인터페이스 로 직접 시작 할 수 있 는 이 유 는 gdm 를 실행 하기 때 문 입 니 다.따라서 gdm 의 시작 스 크 립 트 를 사용 하지 않 으 면 됩 니 다. 방법 은 파일 이름 의 첫 번 째 알파벳 S 를 K 로 바 꾸 는 것 입 니 다.
    cd /etc/rc2.d
    sudo mv S30gdm K30gdm

     
        이것 은 방법 일 뿐만 아니 라 매우 간단 하 다.하지만 더 편리 한 방법 은 새로운 Runlevel 을 설정 하여 새로운 Runlevel 을 문자 인터페이스 로 시작 하 는 것 입 니 다.이렇게 하면 관리 하기에 편리 하 다.Ubuntu 에/etc/inittab 파일 이 없어 서 새로 만 들 수 밖 에 없습니다. 내용 은 한 줄 밖 에 없습니다.
    id:3:initdefault:
     
        다음 시작 시/etc/rc3. d/디 렉 터 리 에 있 는 스 크 립 트 가/etc/rc2. d/가 아 닌 자동 으로 실 행 됩 니 다.그래서 다음은/etc/rc3. d/에 들 어가 gdm 의 시작 스 크 립 트 파일 이름 을 보 려 고 합 니 다.
    ls -l *gdm

     
        S 로 시작 했다 면 K 로 시작 하 는 것 으로 파일 이름 을 바 꾸 면 된다.
     
    원문:http://blog.csdn.net/yangzhuoluo/article/details/5873272
     

    좋은 웹페이지 즐겨찾기