Linux가 시작될 때 우리는 많은 시작 정보를 보게 될 것입니다.
Linux 시스템의 시작 과정은 많은 사람들이 생각하는 것처럼 복잡하지 않으며 5 단계로 나눌 수 있습니다.
- 커널의 부팅.
- init의 실행.
- 시스템 초기화.
- 터미널을 설립.
- 사용자가 시스템에 로그인.
초기화 프로그램의 종류 :
- SysV : init, CentOS 5 이전의 구성 파일 : / etc / inittab.
- Upstart : init, CentOS 6, 구성 파일 : / etc / inittab, /etc/init/*.conf
- Systemd : systemd, CentOS 7, 구성 파일 : / usr / lib / systemd / system, / etc / systemd / system.
커널 부팅
컴퓨터가 켜지면 BIOS에 설정된 시작 장치 (일반적으로 하드 디스크)에 따라 BIOS 자체 테스트가 먼저 시작됩니다.
운영 체제가 하드웨어를 인수 한 후에는 먼저 / boot 디렉토리에서 커널 파일을 읽습니다.
init 실행
init 프로세스는 시스템의 모든 프로세스의 시작점으로 시스템의 모든 프로세스의 조상과 비교할 수 있으며이 프로세스가 없으면 시스템의 프로세스가 시작되지 않습니다.
init 프로그램은 먼저 설정 파일 / etc / inittab을 읽어야합니다.
런레벨
많은 프로그램을 시작해야합니다. Windows에서는 “서비스” (service) , Linux에서는 “데몬” (daemon) 이라고합니다.
init 프로세스의 주요 작업은 이러한 시작 프로그램을 실행하는 것입니다.
그러나 경우에 따라 다른 프로그램을 시작해야합니다 (예 : 서버로 사용되는 경우 Apache를 시작해야하며 데스크탑에는 필요하지 않음).
Linux는 서로 다른 부팅 프로그램을 다른 상황에 할당 할 수있게합니다. 이것을 “런레벨”이라고합니다. 다시 말해 시작시 “실행 수준”에 따라 실행할 프로그램을 결정합니다.
Linux 시스템에는 7 가지 런레벨 (runlevel)이 있습니다.
- 실행 레벨 0 : 시스템이 중지 된 상태입니다 시스템의 기본 운영 수준을 0으로 설정할 수 없으며 그렇지 않으면 정상적으로 시작할 수 없습니다
- 실행 레벨 1 : 단일 사용자 작업 상태, root권한, 시스템 유지 관리에 사용, 원격 로그인 금지
- 실행 레벨 2 : 다중 사용자 상태 (NFS 없음)
- 실행 레벨 3 : 완전한 다중 사용자 상태 (NFS 사용), 로그인 후 콘솔 명령 행 모드로 들어가기
- 실행 레벨 4 : 시스템에 사용되지 않고 보류
- 실행 레벨 5 : X11 콘솔, 로그인 후 그래픽 GUI 모드로 전환
- 실행 레벨 6 : 시스템 종료 및 정상적으로 재시작,기본 실행 레벨은 6으로 설정할 수 없으며 그렇지 않으면 정상적으로 시작할 수 없습니다
시스템 초기화
init 구성 파일에는 다음과 같은 행이 있습니다. si :: sysinit : /etc/rc.d/rc.sysinit /etc/rc.d/rc.sysinit를 호출하고 실행하며 rc.sysinit는 bash 쉘 스크립트입니다. , 주로 일부 시스템 초기화 작업을 완료하는 것입니다. rc.sysinit는 각 실행 레벨마다 먼저 실행해야하는 중요한 스크립트입니다.
완료되는 주요 작업 : 스왑 파티션 활성화, 디스크 확인, 하드웨어 모듈로드 및 먼저 수행해야하는 기타 작업.
l5:5:wait:/etc/rc.d/rc 5
이 행은 /etc/rc.d/rc가 매개 변수로 5를 사용하여 실행됨을 나타냅니다 ./Etc/rc.d/rc는 /etc/rc.d/rc5.d/ 디렉토리를 실행하기위한 매개 변수로 5를 허용하는 쉘 스크립트입니다. 아래의 모든 rc 시작 스크립트, /etc/rc.d/rc5.d/ 디렉토리의 시작 스크립트는 실제로 실제 rc 시작 스크립트가 아닌 일부 연결 파일이며 실제 rc 시작 스크립트는 실제로 모두 /etc/rc.d/init.d/ 디렉토리에 저장하십시오.
이 rc 시작 스크립트는 비슷한 사용법을 가지고 있으며 일반적으로 시작, 중지, 다시 시작 및 상태와 같은 매개 변수를 승인합니다.
/etc/rc.d/rc5.d/의 rc 시작 스크립트는 일반적으로 K 또는 S로 시작하는 연결 파일입니다. S로 시작하는 시작 스크립트의 경우 시작 매개 변수를 사용하여 실행됩니다.
해당 스크립트가 있고 K로 시작하는 연결이 있고 / var / lock / subsys / 아래의 파일을 부호로 사용하여 이미 실행중인 상태 인 경우 중지 된 가드가 먼저 중지 매개 변수와 함께 중지됩니다. 처리 한 다음 다시 실행하십시오.
이것은 init가 실행 레벨을 변경할 때 모든 관련 데몬이 재시작되도록하기 위해 수행됩니다.
각 런레벨에서 어떤 데몬이 실행 될지 사용자는 chkconfig 또는 setup의 “System Services”를 통해 자신의 데몬을 설정할 수 있습니다.
터미널 설립
rc가 실행 된 후 init로 돌아갑니다. 현재 기본 시스템 환경이 설정되었으며 다양한 데몬이 시작되었습니다.
Init은 사용자가 시스템에 로그인 할 수 있도록 6 개의 터미널을 엽니 다. inittab의 다음 6 줄은 6 개의 터미널을 정의합니다.
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
위에서 알 수 있듯이 2, 3, 4, 5의 실행 레벨에서는 mingetty 프로그램이 respawn 모드로 실행되며 mingetty 프로그램은 터미널을 열고 모드를 설정할 수 있습니다.
동시에 로그인 인터페이스 인 텍스트 로그인 인터페이스가 표시되며,이 로그인 인터페이스에서 사용자 이름을 입력하라는 메시지가 표시되고 사용자가 입력 한 사용자는 로그인 프로그램에 매개 변수로 전달되어 사용자의 신원을 확인할 수 있습니다.
사용자 로그인 시스템
일반적으로 사용자가 로그인하는 방법에는 세 가지가 있습니다.
- (1) 커맨드 라인 로그인
- (2) SSH 로그인
- (3) 그래픽 인터페이스 로그인
실행 레벨 5를 사용하는 그래픽 모드의 사용자는 그래픽 로그인 인터페이스를 통해 로그인합니다. 로그인에 성공하면 KDE 및 Gnome과 같은 창 관리자를 직접 입력 할 수 있습니다.
이 강좌에서는 주로 텍스트 로그인 상황에 대해 설명합니다. mingetty의 로그인 인터페이스가 표시되면 사용자 이름과 비밀번호를 입력하여 시스템에 로그인 할 수 있습니다.
Linux 용 계정 확인 프로그램은 로그인이며, 로그인은 Mingetty의 사용자 이름을 username 매개 변수로받습니다.
그런 다음 login은 사용자 이름을 분석합니다. 사용자 이름이 root가 아니고 / etc / nologin 파일이 있으면 login은 nologin 파일의 내용을 출력 한 다음 종료합니다.
이는 일반적으로 시스템 유지 보수 중 루트가 아닌 사용자가 로그인하지 못하게하는 데 사용됩니다. / etc / securetty에 등록 된 터미널 만 루트 사용자가 로그인 할 수 있습니다.이 파일이 존재하지 않으면 루트 사용자는 모든 터미널에 로그인 할 수 있습니다.
/ etc / usertty 파일은 사용자에게 추가 액세스 제한을 부과하는 데 사용되며이 파일이 존재하지 않으면 다른 제한이 없습니다.
그래픽 모드와 텍스트 모드 간 전환 모드
Linux 사전 설정은 로그인 할 수있는 6 개의 명령 창 터미널을 제공합니다.
기본적으로 로그인하는 첫 번째 창은 tty1이며, 6 개의 창은 tty1, tty2… tty6이며 Ctrl + Alt + F1 ~ F6을 눌러 전환 할 수 있습니다.
그래픽 인터페이스를 설치 한 경우 기본값은 그래픽 인터페이스를 입력하는 것이며, 이때 Ctrl + Alt + F1 ~ F6을 눌러 명령 창 인터페이스 중 하나를 입력 할 수 있습니다.
명령 창 인터페이스로 들어간 다음 그래픽 인터페이스로 돌아 오면 Ctrl + Alt + F7을 눌러 돌아갑니다.
VMware 가상 머신을 사용하는 경우 명령 창 전환을위한 바로 가기 키는 Alt + Space + F1 ~ F6입니다. 그래픽 인터페이스에있는 경우 Alt + Shift + Ctrl + F1 ~ F6을 눌러 명령 창으로 전환하십시오.
Linux 셧다운
Linux 필드의 서버에서 주로 사용되며 종료 작업이 거의 발생하지 않습니다. 특별한 상황이 아니라면 서버에서 서비스를 종료하지 않아도됩니다.
올바른 종료 프로세스는 다음과 같습니다. sync> shutdown> reboot> 정지
shutdown 명령은 다음과 같습니다. shutdown, man shutdown을 사용하여 도움말 문서를 볼 수 있습니다.
예를 들어 다음 명령을 실행하여 종료 할 수 있습니다.
sync ###메모리에서 하드 디스크로 데이터를 동기화합니다.메모리에서 하드 드라이브로 데이터를 동기화합니다.
shutdown ###종료 지침 은 man shutdown 에 대한 도움말 문서를 참조하십시오. 예를 들어 다음 명령을 실행하여 종료 할 수 있습니다.
shutdown –h 10 ‘This server will shutdown after 10 mins’ ###이 명령은 10 분 후에 컴퓨터가 종료되고 로그인 한 사용자의 현재 화면에 표시됨을 모든 사람에게 알려줍니다 .
shutdown –h now ###이제 즉시 종료
shutdown -h 20:25 ###이 될 것입니다 오늘 20 : 25 종료
shutdown –h +10 ###10분후 종료
shutdown –r now ##시스템을 즉시 다시 시작합니다
shutdown –r +10 ###10분후시스템 재시작,
reboot ###재시작입니다. 이는 shutdown – r now 와 같습니다.
halt 셧다운,shutdown –h now 와 poweroff랑 같습니다.
마지막으로, 시스템을 다시 시작해야하는지 아니면 시스템을 종료해야하는지 요약하려면 먼저 sync 명령을 실행하여 메모리의 데이터를 디스크에 기록하십시오.
shutdown 명령은 shutdown –h는 이제 poweroff 및 init 0을 중지 하고 시스템 재시작 명령은 shutdown –r은 이제 init 6을 재부팅합니다 .