SHUTDOWN(8) | Manual de Administrador de Sistema Linux | SHUTDOWN(8) |
shutdown - desliga o sistema
/sbin/shutdown [-akrhPHfFncqQ] [-t sec] tempo [mensagem de aviso]
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.
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.
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.
The -H option just sets the init environment variable INIT_HALT to HALT, and the -P option just sets that variable to POWEROFF. The script (usually /etc/init.d/halt) that calls the halt(8) program as the last thing in the shutting down sequence should check this environment variable and call the halt(8) program with the right options for these options to actually have any effect.
/fastboot /etc/inittab /etc/init.d/halt /etc/init.d/reboot /etc/shutdown.allow
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).
fsck(8), init(8), halt(8), poweroff(8), reboot(8)
12 Novembro, 2003 | sysvinit |