SHUTDOWN(8)

NOME
shutdown - desliga o sistema

RESUMO
/sbin/shutdown [-akrhPHfFncqQ] [-t sec] tempo [mensagem de aviso]

DESCRIÇÃO
O shutdown desliga o sistema num modo seguro. Todos os utilizadores com sessão aberta são notificados de que o sistema vai desligar, e o login(1) é bloqueado. É possível desligar o sistema imediatamente ou após um atraso especificado. Todos os processos são primeiro notificados de que o sistema vai desligar pelo sinal SIGTERM. Isto dá a programas como o vi(1) o tempo para salvar o ficheiro que está a ser editado, a programas de processamento de mail e notícias a hipótese de terminar de maneira limpa, etc. O shutdown faz o seu trabalho ao sinalizar o processo init, pedindo-lhe para mudar o runlevel. O runlevel 0 é usado para parar o sistema, o runlevel 6 é usado para reiniciar o sistema, e o runlevel 1 é usado para pôr o sistema num estado em que se podem executar tarefas administrativas; esta é a predefinição se nenhuma das bandeiras -h ou -r forem dadas ao shutdown. Para ver que acções são tomadas no desligar ou reiniciar veja as entradas apropriadas para esses runlevels no ficheiro /etc/inittab.

OPÇÕES

-a  Usa /etc/shutdown.allow.

-k  Não desliga realmente; apenas envia mensagens de aviso a toda a gente.

-r  Reinicia após desligar.

-h  Pára ou desliga energia após o desligar do sistema. Normalmente usando com as bandeiras -P ou -H, dependendo se queremos mesmo desligar a energia à máquina ou apenas parar o sistema operativo.

-P  Modificador da bandeira -h. A acção de parar deve desligar a energia. Tem de ser usado com a bandeira -h.

-H  Modificador da bandeira -h. A acção de parar é de parar ou de cair para o monitor de arranque em sistemas que o suportam. Tem de ser usado com a bandeira -h. Este modo de parar é muitas vezes usado para se correr pelo processo de desligar e deixar o resultado no ecrã para objectivos de depuração. Ou quando o utilizador quer que o SO pare, mas deixe a energia ligada. Para desligar a energia no final da sequência do shutdown use o modificador -P em vez deste.

-f  Salta o fsck(8) ao reiniciar.

-F  Força o fsck(8) ao reiniciar.

-n  [DESCONTINUADO] Não chame o init(8) para desligar o computador mas faça-o você mesmo. O uso desta opção está desencorajado, e os seus resultados nem sempre são aqueles que você espera.

-c  Cancela um desligar em espera. (shutdown now não fica mais à espera.) Com esta opção está claro que não é possível dar um argumento de tempo, mas você pode inserir argumentos de mensagem explicativa na linha de comandos que será enviada a todos os utilizadores.

-q  Reduz o número de avisos que o shutdown mostra. Normalmente o shutdown mostra avisos a cada 15 minutos e depois a cada minuto nos últimos 10 minutos da contagem decrescente até que time seja alcançado. Quando -q é especificado, o shutdown apenas avisa em intervalos de 60 minutos, na marca dos 10 minutos, na marca dos 5 minutos, e quando o processo de desligar acontece na realidade.

-Q  Silencia avisos anteriores ao desligar. Normalmente o shutdown mostra avisos a cada 15 minutos e depois a cada minuto nos últimos 10 minutos da contagem até time ser atingido. Quando -Q é especificado O shutdown apenas avisa quando o processo de desligar vai realmente acontecer. Todos os outros avisos intervalados são suprimidos.

-t sec
    Diz ao init(8) para esperar sec segundos entre enviar a todos os processos o sinal de aviso (SIGTERM) e o sinal de morte (SIGKILL), antes de mudar para outro. O tempo predefinido, se nenhum valor for especificado, entre estes dois sinais é de três segundos. Aviso: quando o shutdown chama o init(8) para executar o desligamento (o comportamento predefinido). o init(8) verifica se já todos os processos terminaram e pára de esperar assim que os seus filhos todos terminarem. Quando o shutdown é chamado com a bandeira -n, espera o tempo total especificado (ou os 3 segundos) mesmo que todos os processos já tenham terminado.

time
    When to shutdown. If a time is given then the shutdown command will not exit but instead count down until reboot.

warning message
    Mensagem a enviar a todos os utilizadores.

O argumento time pode ter diferentes formatos. Primeiro, pode ser um tempo absoluto no formato hh:mm, no qual hh é a hora (1 ou 2 dígitos) e mm é o minuto da hora (em dois dígitos). Segundo, pode estar no formato +m, no qual m é o número de minutos a esperar. Terceiro, pode estar no formato +hh:mm, no qual hh:mm é o número de horas e minutos a esperar. A palavra now é uma alternativa para +0.

If shutdown is called with a delay, it will create the advisory file /run/nologin which causes programs such as login(1) to not allow new user logins. This file is created five minutes before the shutdown sequence starts. shutdown removes this file if it is stopped before it can signal init (i.e. it is cancelled or something goes wrong). It also removes it before calling init(8) to change the runlevel.

A bandeira -f significa `reiniciar rápido'. Isto apenas cria um ficheiro de advertência /fastboot o qual pode ser testado pelo sistema quando este volta a arrancar. O ficheiro rc de arranque consegue testar se este ficheiro está presente, e decidir não correr o fsck(8) pois o sistema foi desligado de maneira apropriada. Após isso, o processo de arranque deve remover o /fastboot.

A bandeira -F significa `força o fsck'. Isto apenas cria um ficheiro de advertência /forcefsck o qual consegue ser testado pelo sistema quando este volta a arrancar. O ficheiro rc de arranque consegue testar se este ficheiro está presente, e decidir correr o fsck(8) com a bandeira especial `force' para que mesmo os sistemas de ficheiros desmontados de modo apropriado sejam verificados. Após isso, o processo de arranque deve remover o /forcefsck.

A bandeira -n faz o shutdown não chamar o init(8), mas matar ele próprio todos os processos a correr. O shutdown irá então desligar as cotas, acesso a contas, a memória virtual e desmontar todos os sistemas de ficheiros.

CONTROLE DE ACESSO
O shutdown pode ser chamado a partir do init(8) quando as teclas mágicas CTRL-ALT-DEL são pressionadas, ao criar uma entrada apropriada em /etc/inittab. Isto significa que qualquer um que tenha acesso físico ao teclado de consola consegue desligar o sistema. Para prevenir isto, o shutdown pode verificar e ver se um utilizador autorizado tem sessão aberta em uma das consolas virtuais. Se o If shutdown é chamado com o argumento -a (adicionar isto na invocação do shutdown em /etc/inittab), ele verifica se o ficheiro /etc/shutdown.allow está presente. Ele então compara os nomes de login nesse ficheiro com a lista de pessoas que têm sessão aberta numa consola virtual (a partir de /var/run/utmp). Apenas se um desses utilizadores autorizados ou o root estiver com login aberto, isto irá prosseguir. Caso contrário irá escrever a mensagem

shutdown: no authorized users logged in

na consola de sistema (física). O formato de /etc/shutdown.allow é um nome de utilizador por linha. São permitidas linhas vazias e linhas comentário (prefixadas com um #). Actualmente existe um limite de 32 utilizadores neste ficheiro.

Note que se /etc/shutdown.allow não estiver presente, o argumento -a é ignorado.

HALT OU POWEROFF
A opção -H apenas define a variável de ambiente INIT_HALT do init para HALT, e a opção -P apenas define essa variável para POWEROFF. O script (normalmente /etc/init.d/halt) que chama o programa halt(8) como a última coisa na sequência de encerramento deve verificar esta variável de ambiente e chamar o programa halt(8) com as opções certas para que estas opções tenham algum efeito.

FICHEIROS
/fastboot
/etc/inittab
/etc/init.d/halt
/etc/init.d/reboot
/etc/shutdown.allow

NOTAS
Muitos utilizadores esquecem de dar o argumento time e ficam baralhados com a mensagem de erro que o shutdown produz. O argumento time é obrigatório; em 90 por cento dos casos este argumento será a palavra now.

O init(8) pode apenas capturar CTRL-ALT-DEL e arrancar o shutdown em mod de consola. Se o sistema está a correr o Sistema de janelas X, o servidor X processa todas as teclas. Alguns ambientes X11 tornam possível capturar CTRL-ALT-DEL, mas o que exactamente é feito com esse evento depende desse ambiente.

O shutdown não foi desenhado para correr setuid. O /etc/shutdown.allow não é usado para descobrir quem está a executar o shutdown, APENAS verifica quem tem actualmente sessão aberta nas consolas (numa delas).

AUTOR
Miquel van Smoorenburg (miquels@cistron.nl)

VEJA TAMBÉM
fsck(8), init(8), halt(8), poweroff(8), reboot(8)