• Definir o runlevel padrão ou o target do boot
  • Mudar entre runlevels e boot targets incluindo o single user mode
  • Desligar e reiniciar a maquina pela linha de comando
  • Alertar usuários antes de mudar de runlevels ou boot target ou ate mesmo em outros eventos considerados importantes.
  • Finalizar processos de modo correto

shutdown

Esse comando realiza o desligamento e até mesmo a reiniclização da máquina. Vale lembrar que usando o init 0 para desligar, e o init 6 para reiniciar.

Podemos ainda usar o telinit para isso, mas esses comandos não realizam operações assessorias como enviar mensagens para os outros usuários que o sistema sera desligado.

Uma dica para memorizar os parametros é que ao contrario de alguns comandos eles são bem intuitivos. As letras correspondem as inciais de cada ação com excessão para o -k.

O comando pode ser utilizado sem argumentos. Ele desliga a máquina em 1 minuto.

shutdown	
Shutdown scheduled for Thu 2018-05-10 09:45:47 -03, use 'shutdown -c' to cancel.

O comando abaixo desliga a máquina imediatamente.

shutdown now	

O comando abaixo reinicia a máquina imediatamente.

shutdown now -r	

O comando abaixo desliga a máquina às 13:20

shutdown 13:20	

O comando abaixo desliga a máquina em 60 minutos

shutdown +60	

Executa o halt

shutdown -H	

-H, –halt

Esse comando desliga o linux mas não a máquina.

-P, –poweroff

Power-off the machine (the default).

-r, –reboot

Reinicia a máquina

-h

Equivalent to –poweroff, unless –halt is specified.

-k

Com esse parametro o sistema não realiza o halt, power-off ou reboo, apenas escreve as mensagens wall.

–no-wall

Não envia mensagens wall.

-c

Cancela um shutdown pendente. Esse comando evita que que um comando de desligamento seja executado caso claro ele não seja invocado com os agrumantos “now” ou “+0”

shutdown +2
Shutdown scheduled for Mon 2018-04-16 16:13:27 -03, use 'shutdown -c' to cancel.
shutdown -c

Poweroff

Poweroff envia um sinal ACPI com instruções para desligar o sistema. Vejamos alguns exemplos:

poweroff   	       #poweroff	
poweroff --halt      #executa um halt	
poweroff --reboot    #reinicia a máquina	

halt

O halt instrui o hardware a parar todas as funções de CPU, mais sem desligar. Você pode usá-lo para deixar o sistema em um estado onde você pode executar manutenção de baixo nível.

	halt                  # para a máquina	
halt -p              # executa um poweroff	
halt --reboot    # reinicia a máquina	

wall

Esse comando realiza o envio de mensagem para todos os usuários logados no sistema. Segundo o man:

wall - escreve mensagens para todos os usuários

wall	
Oi, eu sou o Goku
\< CTRL+D\>

Essa mensagem é enviada para todos os usuarios logados na máquina

/etc/inittab

Esse arquivo contem informações sobre o runlevel padrão do sistema

runlevel

“Runlevels” são uma forma obsoleta de iniciar e parar grupos de serviços utilizados n SysV init. Systemd disponibiliza uma camada de compatibilidade que mapeia os runlevels para os targets.

Mapeamento entre runlevels e targets do systemd

Runlevel Target

RUNLEVEL TARGET
0 poweroff.target
1 rescue.target
2,3,4 multi-user-.target
5 graphical.target
6 reboot.target

O comando runlevel exibe o runlevel anterior e o atual. Os dois caracteres são separados por um espaço. Se um desses runlevel não pode ser determinado letra N é exibida, se os dois não podem ser determinados a palavra “unknown” é exibida.

Na execução do comando abaixo, o runlevel anterior não foi determinado e por isso o N foi exibido. Mas sabemos que o runlevel atual é o 5.

runlevel
N 5

init

Esse comando realiza a alteração de run level

telinit

Esse comando realiza a alteração de run level

/etc/init.d/

systemd

Systemd é um gerenciador de sistema e de serviços para o Linux, compativel com o SysV. Systemmd utiliza sockets e D-BUS para inicialização de serviços, oferece a iniciação por demanda de daemons, rastreia processos utilizando o controle de grupos do Linux, suporta snaphotting e o restoring de um determinado estado do sistema.

systemctl

/etc/systemd

/usr/lib/systemd