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
    Quando deve desligar.

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.

Se o shutdown for chamado com um atraso, irá criar o ficheiro de advertência /etc/nologin o qual faz com que programas como o login(1) não permitam novos logins de utilizadores. Este ficheiro é criado cinco minutos antes da sequência de encerramento começar. O shutdown remove este ficheiro se for parado antes de puder sinalizar ao init (isto é, se for cancelado ou se algo correr mal). Também o remove antes de chamar o init(8) para mudar o nível de execução.

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)