English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
ao inicializar o Linux, veremos muitas informações de inicialização.
O processo de inicialização do sistema Linux não é tão complexo quanto se imagina, podendo ser dividido em5fases:
guia do kernel。
executar init。
inicialização do sistema.
estabelecer terminal .
o usuário loga no sistema.
tipo do programa init:
SysV: init, CentOS 5Antes, arquivo de configuração: /etc/inittab。
Upstart: init, CentOS 6, arquivo de configuração: /etc/inittab, /etc/init/*.conf。
Systemd: systemd, CentOS 7, arquivo de configuração: /usr/lib/systemd/system、 /etc/systemd/system。
Quando o computador é ligado, primeiro há a verificação de inicialização BIOS, iniciando conforme configurado no BIOS (geralmente no disco rígido).
Após o sistema operacional assumir o hardware, primeiro lê /arquivo do kernel no diretório boot.
O processo init é o ponto de partida de todos os processos do sistema, você pode compará-lo com o antepassado de todos os processos do sistema, sem esse processo, nenhum processo no sistema será iniciado.
O programa init primeiro precisa ler o arquivo de configuração /etc/inittab。
Muitos programas precisam ser iniciados. Eles são chamados de "serviços" (service) no Windows e de "demónios" (daemon) no Linux.
Uma grande tarefa do processo init é executar esses programas de inicialização.
Mas, diferentes situações requerem o início de diferentes programas, por exemplo, quando usado como servidor, é necessário iniciar o Apache, mas quando usado como桌面不需要。
O Linux permite que diferentes programas de inicialização sejam atribuídos a diferentes situações, o que se chama de "nível de execução" (runlevel). Isso significa que, durante a inicialização, os programas a serem executados são determinados com base no "nível de execução".
O sistema Linux tem7nível de execução (runlevel):
nível de execução 0:estado de desligamento do sistema,o nível de execução padrão do sistema não pode ser definido como 0,de outra forma não pode ser iniciado normalmente
nível de execução1:estado de trabalho de usuário único,permissões de root,usado para manutenção do sistema,proibido login remoto
nível de execução2:estado de multiusuário (sem NFS)
nível de execução3:estado de multiusuário completo (com NFS),após o login, entre no modo linha de comando da consola
nível de execução4:o sistema não está em uso,reservado
nível de execução5:X11consola,após o login, entre no modo GUI gráfico
nível de execução6:o sistema foi encerrado e reiniciado normalmente,o nível de execução padrão não pode ser definido como6,de outra forma não pode ser iniciado normalmente
In the init configuration file, there is this line: si::sysinit:/etc/rc.d/rc.sysinit calls and executes/etc/rc.d/rc.sysinit, and rc.sysinit is a bash shell script, mainly to complete some system initialization work. rc.sysinit is an important script that needs to be run first in each run level.
It mainly completes the following tasks: activates the swap partition, checks the disk, loads the hardware module, and other tasks that need to be executed with priority.
l5:5:wait:/etc/rc.d/rc 5
This line indicates that it runs5runs with/etc/rc.d/rc/etc/rc.d/rc is a Shell script, it accepts5as parameters to execute/etc/rc.d/rc5.d/The rc startup scripts in the directory are all important scripts that need to be run first in each run level./etc/rc.d/rc5.d/The startup scripts in the directory are actually some link files, not real rc startup scripts. The real rc startup scripts are actually placed in/etc/rc.d/init.d/directory.
These rc startup scripts have similar usage, generally they can accept parameters such as start, stop, restart, status, etc.
/etc/rc.d/rc5.d/The rc startup scripts are usually files starting with K or S, for startup scripts starting with S, they will be run with the start parameter.
And if it is found that there is also a corresponding script with a K header connection, and it is already in the running state (with/var/lock/subsys/The files as a marker), then it will first stop these already started daemons with the stop parameter, and then run them again.
This is to ensure that when init changes the run level, all related daemons will be restarted.
As to which daemons will run in each run level, users can set them themselves through chkconfig or "System Services" in setup.
After the rc execution is completed, it will return to init. At this time, the basic system environment has been set up, and various daemons have also been started.
init will open6terminals, so that users can log into the system. In the following6This line defines6terminals:
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
From the above, we can see that in2,3,4,5mingetty program will run in the respawn mode, and the mingetty program can open terminals and set modes.
It will also display a text login interface, which is the login interface we often see. In this login interface, it will prompt the user to enter the username, and the username entered by the user will be passed as a parameter to the login program to verify the user's identity.
Generally, there are three ways for users to log in:
(1login via command line
(2login via ssh
(3) Login de interface gráfica
Para o nível de execução5Para os usuários em modo gráfico, seu login é feito através de uma interface de login gráfica. Após o login bem-sucedido, você pode diretamente entrar no gerenciador de janelas KDE, Gnome, etc.
E o que este artigo fala principalmente ainda é a situação de login em modo texto: quando vemos a interface de login do mingetty, podemos inserir o nome de usuário e a senha para fazer login no sistema.
O programa de verificação de conta do Linux é login, o login receberá o nome de usuário passado pelo mingetty como parâmetro do nome de usuário.
Depois disso, o login analisará o nome de usuário: se o nome de usuário não for root e existir /etc/nologin o arquivo, o login exibirá o conteúdo do arquivo nologin e sairá.
Isso geralmente é usado para evitar que usuários não root façam login durante a manutenção do sistema. Apenas/etc/O terminal registrado no securetty permite que o usuário root faça login, se esse arquivo não existir, o usuário root pode fazer login em qualquer terminal.
/etc/usertty para aplicar restrições de acesso adicionais ao usuário, se esse arquivo não existir, não haverá outras restrições.
Depois de analisar o nome de usuário, o login procurará /etc/passwd e /etc/shadow para verificar a senha e configurar outras informações da conta, como: qual é o diretório principal, qual shell está sendo usado. Se não for especificado o diretório principal, será o diretório raiz; se não for especificado o shell, será o padrão /bin/bash.
O Linux fornece seis terminais de janela de comando para que possamos nos logar.
Padrão, nos login, é a primeira janela,也就是tty1, essas seis janelas são tty1,tty2 … tty6, você pode pressionar Ctrl + Alt + F1 ~ F6 para alterná-las.
Se você instalou a interface gráfica, no padrão, você entra na interface gráfica, neste momento, você pode pressionar Ctrl + Alt + F1 ~ F6para entrar em uma das interfaces de janela de comando.
Quando você entra na interface da janela de comando, para retornar à interface gráfica, basta pressionar Ctrl + Alt + F7 e voltará.
Se você usar o virtual machine vmware, a tecla de atalho para alternar a janela de comando é Alt + Espaço + F1~F6. Se você estiver na interface gráfica, pressione Alt + Shift + Ctrl + F1~F6 Mude para a janela de comando.
No domínio do Linux, é usado principalmente em servidores, raramente se depara com operações de desligamento. Afinal, executar um serviço em um servidor é um processo interminável, a não ser que haja situações especiais, a menos que seja necessário, o servidor será desligado.
O fluxo correto de desligamento é: sync > shutdown > reboot > halt
O comando de desligamento é: shutdown, você pode usar o man shutdown para ver o documento de ajuda.
Por exemplo, você pode executar o seguinte comando para desligar:
sync – Sincronizar dados do memória para o disco. Comando shutdown – Desligar, você pode usar o man shutdown para ver o documento de ajuda. Por exemplo, você pode executar o seguinte comando para desligar: shutdown –h 10 ‘Este servidor será desligado após 10 mins’ Este comando informa aos usuários que o computador será10Desligar após X minutos e exibir na tela atual do usuário logado. shutdown –h now – Desligar imediatamente shutdown –h 20:25 O sistema será desligado hoje20:25Desligar shutdown –h +10 Desligar após dez minutos shutdown –r now – Reiniciar o sistema imediatamente shutdown –r +10 O sistema reiniciará após dez minutos reboot – Reiniciar, equivalente a shutdown –r now halt – Desligar o sistema, equivalente a shutdown –h now e poweroff
Para concluir, seja para reiniciar ou desligar o sistema, primeiro você deve executar sync O comando, que escreve os dados da memória para o disco.
Existem comandos para desligar o sistema: shutdown –h now halt poweroff e init 0 , Existem comandos para reiniciar o sistema: shutdown –r now reboot init 6。