Aprenda Linux, 101: Níveis de execução, encerramento e reinicialização

Dê vida a seu sistema

Aprenda a encerrar ou reinicializar seu sistema Linux, avisar a usuários que o sistema está sendo desligado e alternar para um nível de execução mais ou menos restritivo. É possível usar o material neste artigo para estudar para o exame de certificação de administrador de sistema Linux LPI 101, ou apenas para aprender sobre encerramento, reinicialização e alteração de níveis de execução.

Ian Shields, Senior Programmer, IBM

author photo - Ian ShieldsIan Shields trabalha em muitos projetos Linux para a zona Linus do developerWorks Linux. Ele é um Programador Sênior na IBM em Research Triangle Park, NC. Ele se uniu à IBM em Canberra, Austrália, com Engenheiro de Sistemas em 1973, e desde então trabalhou em sistemas de comunicação e computação disseminada em Montreal, Canadá e em RTP, NC. Ele possui diversas patentes e publicou diversos papers. Sua licenciatura universitária foi em matemática pura e filosofia pela Australian National University. Ele é um M.S. e Ph.D. em ciência da computação pela North Carolina State University. Você pode entrar em contato com Ian através do endereço ishields@us.ibm.com.


nível de autor Contribuidor do
        developerWorks

26/Jan/2011

Sobre esta série

Esta série de artigos ajuda você a aprender as tarefas de administração de sistema Linux. Também é possível usar o material desses artigos para se preparar para os exames da Linux Professional Institute Certification nível 1 (LPIC-1).

Consulte o roteiro do developerWorks para LPIC-1 para ver uma descrição de cada artigo da série e um link para cada um desses artigos. O roteiro está em andamento e reflete os mais recentes (abril de 2009) objetivos para os exames LPIC-1: à medida que concluímos os artigos, os adicionamos ao roteiro. Enquanto isso, é possível encontrar versões anteriores de material semelhante, que suportam objetivos prévios do LPIC-1 anteriores a abril de 2009, em nossos tutoriais anteriores de preparação para o exame de certificação LPI .

Visão geral

Neste artigo, aprenda a encerrar ou reinicializar seu sistema Linux, avisar a usuários que o sistema está sendo desligado e alternar para um nível de execução mais ou menos restritivo. Aprenda a:

  • Configurar o nível de execução padrão
  • Alternar entre níveis de execução
  • Alternar para modo de usuário único
  • Encerrar ou reinicializar o sistema a partir da linha de comando
  • Alertar usuários sobre eventos de sistema importantes, incluindo alteração do nível de execução
  • Terminar processos apropriadamente

A menos que disposto em contrário, os exemplos neste artigo usam um sistema Fedora 8 com um kernel 2.6.26. Os exemplos do upstart usam Fedora 13 com kernel 2.6.34 ou Ubuntu 10.10 com kernel 2.6.35. Os resultados em outros sistemas podem variar.

Este artigo o ajuda a se preparar para o Objetivo 101.3 do Tópico 101 do exame 101 do Linux Professional Institute Junior Level Administration (LPIC-1). O objetivo tem um peso 3.

Pré-requisitos

Para obter o máximo dos artigos nesta série, é necessário ter um conhecimento básico do Linux e um sistema Linux funcional para praticar os comandos cobertos neste artigo. Às vezes, versões diferentes de um programa formatam a saída de forma diferente; portanto, os seus resultados podem não ser exatamente iguais às listagens e figuras mostradas aqui. Em especial, o novo sistema upstart está alterando muitas coisas que podem ser familiares a usuários do tradicional processo de iniciação System V (consulte Init vs. Upstart para ver os detalhes). Este artigo é direcionado especificamente ao processo de iniciação System V tradicional, com apenas uma visão geral superficial das diferenças em relação ao upstart.


Níveis de execução

Comunique-se com o Ian

Ian é um dos nossos autores mais populares e prolíficos. Navegue por todos os artigos do Ian no developerWorks. Confira perfil do Ian e comunique-se com ele, outros autores e leitores no My developerWorks.

Níveis de execução definem quais tarefas podem ser realizadas no estado (ou nível de execução) atual de um sistema Linux. Cada sistema Linux suporta três níveis de execução básicos, mais um ou mais níveis para operação normal. Os níveis de execução básicos são mostrados na Tablela 1.

Tablela 1. Níveis de execução básicos do Linux
NívelPropósito
0Encerrar (ou parar) o sistema
1Modo de usuário único; geralmente com os alias s ou S
6Reinicializar o sistema

Além do básico, o uso de níveis de execução é diferente nas distribuições. Um conjunto comum de uso é mostrado na Tablela 2.

Tablela 2. Outros níveis de execução comuns do Linux
LevelPropósito
2 Modo de multiusuário sem rede
3Modo de multiusuário com rede
5Modo de multiusuário com rede e com o X Window System

A distribuição Slackware usa o nível de execução 4 em vez do 5 para um sistema completo executando X Window system. Debian e derivados, como Ubuntu, usam um único nível de execução para o modo de multiusuário, geralmente o nível 2. Consulte a documentação para sua distribuição.


Nível de execução padrão

Quando um sistema Linux é iniciado, o nível de execução padrão é determinado a partir da entrada id: em /etc/inittab. Lista 1 exemplifica uma entrada típica para um sistema como Fedora 8 ou openSUSE 11.2. Ambos os sistemas usam o nível de execução 5 para o X Window System.

Lista 1. Nível de execução padrão em /etc/inittab
 [root@pinguino ~]# grep "^id:"
                    /etc/inittab id:5:initdefault:

Edite esse valor se desejar que seu sistema inicie em um nível de execução diferente, por exemplo, nível 3.


Alterando níveis de execução

Há várias maneiras de alterar níveis de execução. Para fazer uma alteração permanente, é possível editar /etc/inittab e alterar o nível padrão, como você acaba de ver acima.

Se você precisar apenas iniciar o sistema em um nível de execução diferente para um único boot, é possível fazer isso. Por exemplo, suponha que você acaba de instalar um novo kernel e precisa criar alguns módulos após o sistema iniciar com o novo kernel, mas antes de iniciar o X Window System. É possível colocar o sistema no nível de execução 3 para isso. Esse procedimento é feito no momento do boot, editando a linha do kernel (GRUB) ou incluindo um parâmetro após o nome do sistema selecionado (LILO). Use uma única linha para especificar o nível de execução desejado (3, neste caso). Vamos dar um exemplo do GRUB. Suponha que seu arquivo /boot/grub/menu.lst contenha a sub-rotina mostrada na Lista 2.

Lista 2. Sub-rotina típica do GRUB para boot do Fedora 8
        title Fedora (2.6.26.8-57.fc8)
        root (hd0,5)
        kernel /boot/vmlinuz-2.6.26.8-57.fc8 ro root=LABEL=FEDORA8 rhgb quiet
        initrd /boot/initrd-2.6.26.8-57.fc8.img

Para colocar esse sistema no nível de execução 3, espere até que as entradas de boot sejam exibidas, selecione esta entrada e digite "e" para editar a entrada. Dependendo das opções de seu GRUB, pode ser necessário pressionar uma tecla para exibir as entradas de boot e também digitar "p" e uma senha para desbloquear a edição. A tela do GRUB no nosso sistema Fedora 8 tem o visual mostrado na Figura 1.

Figura 1. Selecionando uma opção de boot no GRUB
Selecionando uma opção de boot no GRUB

Neste exemplo, você deve ver agora as linhas root, kernel e initrd. Mova o cursor até a linha começando com "kernel" e pressione "e" para editá-la. A tela do GRUB no nosso sistema Fedora 8 agora tem o visual mostrado na Figura 2.

Figura 2. Selecionando a entrada do kernel para edição
Selecionando a entrada do kernel para edição

Por fim, mova o cursor para o final da linha e inclua um espaço e o dígito "3". Você pode remover "quiet" ou modificar qualquer outro parâmetro, conforme desejar. A tela do GRUB no nosso sistema Fedora 8 agora tem o visual mostrado na Figura 3.

Figura 3. Configurando para iniciar no nível de execução 3
Configurando para iniciar no nível de execução 3

Por fim, pressione Enter para salvar as alterações e digite "b" para fazer o boot do sistema.

Observação: As etapas para fazer isso usando LILO ou GRUB2 são diferentes das etapas do GRUB, mas o princípio básico de edição da maneira como o kernel é iniciado é o mesmo. Mesmo telas do GRUB em outros sistemas ou outras distribuições podem ter uma aparência bem diferente daquelas mostradas aqui. Geralmente estarão disponíveis prompts para ajudá-lo.

Após concluir seu trabalho de configuração no nível de execução 3, você provavelmente irá querer alterar para o nível 5. Felizmente, não é necessário reiniciar o sistema. É possível usar o comando telinit para alternar para outro nível de execução. Use o comando runlevel para mostrar o nível de execução anterior e o atual. Se o primeiro caractere da saída for "N", o nível de execução não foi alterado desde que o sistema foi iniciado. Lista 3 demonstra a verificação e alteração do nível de execução.

Lista 3. Verificando e alterando o nível de execução
 [root@pinguino ~]# runlevel N 3
                [root@pinguino ~]# telinit 5

Após inserir telinit 5, você verá várias mensagens aparecerem brevemente, e seu monitor irá alternar para a tela de login gráfico configurada. Abra uma janela de terminal e verifique se o nível de execução foi alterado, como mostra a Lista 4.

Lista 4. Confirmando o novo nível de execução
 [root@pinguino ~]# runlevel 3 5

Se você usar o comando ls para exibir uma listagem longa do comando telinit, você verá que se trata, na verdade, de um link simbólico para o comando init. Nós demonstramos isso na Lista 5

 [root@pinguino ~]# ls -l $(which
                    telinit) lrwxrwxrwx 1 root root 4 2008-04-01 07:50 /sbin/telinit
                -> init

O executável init sabe se foi chamado como init ou telinit e se comporta de acordo. Como init é executado com o PID 1 no momento do boot, também é inteligente o suficiente para saber quando você posteriormente o chama usando init em vez de telinit. Nesse caso, ele supõe que você quer que ele se comporte como se você tivesse chamado telinit no lugar. Por exemplo, é possível usar init 5 ao invés de telinit 5 para alternar para o nível de execução 5.


Modo de usuário único

Ao contrário de sistemas operacionais de computadores pessoais, como DOS ou Windows, o Linux é inerentemente um sistema de multiusuário. Entretanto, pode haver momentos nos quais isso é um problema, como quando é necessário recuperar um importante sistema de arquivos ou banco de dados ou instalar e testar novo hardware. O nível de execução 1, ou modo de usuário único, é sua resposta para essas situações. A implementação real varia de acordo com a distribuição, mas geralmente se inicia em um shell com apenas um sistema mínimo. Geralmente não há rede e não há daemons em execução (ou há muito poucos). Em alguns sistemas, é preciso autenticar fazendo login, mas em outros se vai direto para a linha de comando do shell como usuário raiz. O modo de usuário único pode salvar sua vida, mas também pode destruir seu sistema, portanto sempre tenha cuidado ao executar com autoridade de raiz. Reinicialize para o modo de multiusuário normal assim que concluir.

Assim como a alteração para níveis de execução de multiusuário regulares, também é preciso alterar para modo de usuário único usando telinit 1. Como observado na Tablela 1, "s" e "S" são alias do nível de execução 1, portanto é possível, por exemplo, usar telinit s.


Encerramento normal

Embora seja possível usar telinit ou init para interromper a atividade de multiusuário e alternar para o modo de usuário único, isso pode ser repentino demais e pode fazer com que os usuários percam seu trabalho e que processos terminem de maneira anormal. O método preferencial de encerrar ou reinicializar o sistema é usando o comando shutdown, que primeiro envia uma mensagem de aviso a todos os usuários conectados e bloqueia logins posteriores. Em seguida, ele sinaliza o init para que altere o nível de execução. O processo init envia então um sinal SIGTERM a todos os processos em execução, dando a eles uma chance de salvar os dados ou terminar adequadamente de outra maneira. Após 5 segundos, ou outro período especificado, init envia um sinal SIGKILL para forçar o término de qualquer processo remanescente.

Por padrão, shutdown alterna para o modo de execução 1 (modo de usuário único). É possível especificar a opção -h para parar o sistema, ou a opção -r para reinicializar. Uma mensagem padrão é emitida, além de qualquer mensagem que você especificar. O horário pode ser especificado como um horário absoluto no formato hh:mm, ou um horário relativo, n, no qual n é o número de minutos até o encerramento. Para encerramento imediato, use now, que é equivalente a +0.

Se um encerramento com atraso tiver sido emitido e o tempo ainda não tiver expirado, é possível cancelar pressionando Ctrl-c , se o comando estiver sendo executado em primeiro plano, ou emitindo shutdown com a opção -c para cancelar um encerramento pendente. Lista 6 mostra vários exemplos do uso de shutdown, bem como as maneiras de cancelar o comando.

Lista 6. Exemplos de encerramento
[root@pinguino ~]# shutdown 5 File system recovery needed 
                
Broadcast message from root (pts/1) (Tue Jan 4 08:05:24 2011): 

File system recovery needed The system is going DOWN to maintenance mode in 5
minutes! 
^C 
Shutdown cancelled. 
[root@pinguino ~]# shutdown -r 10 Reloading updated kernel& 
[1] 18784 
[root@pinguino ~]#

Broadcast message from root (pts/1) (Tue Jan 4 08:05:53 2011): 

Reloading updated kernel 
The system is going DOWN for reboot in 10 minutes! 

[root@pinguino ~]#fg             
shutdown -r 10 Reloading updated kernel
^C Shutdown
cancelled. 
[root@pinguino ~]# shutdown -h 23:59& 
[1] 18788
[root@pinguino ~]# shutdown -c 
                
Shutdown cancelled. 
[1]+           Done         shutdown -h 23:59

Você deve ter notado que nosso último exemplo não fez com que uma mensagem de aviso fosse enviada. Se o horário até o encerramento exceder 15 minutos, a mensagem não é enviada até 15 minutos antes do evento, como mostra a Lista 7. Lista 7 também mostra o uso da opção -t para aumentar o tempo padrão entre os sinais SIGTERM e SIGKILL de 5 para 60 segundos.

Lista 7. Outro exemplo de encerramento
 [root@pinguino ~]# date;shutdown -t60 17 Time to
                    do backups& Tue Jan 4 08:12:55 EST 2011 [1] 18825
                [root@pinguino ~]# date Tue Jan 4 08:14:13 EST 2011 [root@pinguino
                ~]# Broadcast message from root (pts/1) (Tue Jan 4 08:14:55 2011): 
                Time to do
                backups The system is going DOWN to maintenance mode in 15 minutes!

Se você cancelar um encerramento, deve usar o comando wall para enviar um aviso a todos os usuários de que o sistema não irá ser encerrado.

Como dissemos anteriormente, também é possível usar telinit (ou init) para encerrar ou reinicializar o sistema. Como em outros usos de telinit, não é enviado um aviso aos usuários, e o comando tem efeito imediato, embora ainda haja uma demora entre os sinais SIGTERM e SIGKILL. Para ver opções adicionais de telinit, init e shutdown, consulte as man pages apropriadas.


Parada, reinicialização e desligamento

Você deve aprender mais alguns comandos relacionados ao encerramento e reinicialização.

  • O comando halt para o sistema.
  • O comando poweroff é um link simbólico para o comando halt, que para o sistema e tenta desligá-lo.
  • O comando reboot é outro link simbólico para o comando halt, que para o sistema e o reinicia.

Se qualquer um desses for chamado quando o sistema não estiver no nível de execução 0 ou 6, o comando shutdown correspondente será chamado em seu lugar.

Para ver opções adicionais que podem ser usadas com esses comandos, bem como informações mais detalhadas sobre sua operação, consulte a man page.


/etc/inittab

Agora você deve estar se perguntando por que pressionar Ctrl-Alt-Delete em alguns sistemas causa uma reinicialização ou como tudo isso de nível de execução é configurado. Você se lembra do campo ID em /etc/inittab? Bem, há vários outros campos em /etc/inittab e um conjunto de scripts de inicialização em diretórios como rc1.d ou rc5.d, nos quais o dígito identifica o nível de execução aos quais os scripts naquele diretório se aplicam. Lista 8 mostra o inittab completo de nosso sistema Fedora 8.

Lista 8.
#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
#
# Author:       Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
#               Modified for RHS Linux by Marc Ewing and Donnie Barnes
#
    
# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes
# of power left.  Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"


# Run gettys in standard runlevels
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

# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon

Como sempre, as linhas que começam com # são comentários. Outras linhas têm vários campos com o seguinte formato:
id:runlevels:action:process

id
é um identificador exclusivo de um a quatro caracteres. Versões mais antigas limitavam isso a dois caracteres, por isso você verá geralmente apenas dois caracteres usados.
runlevels
lista os níveis de execução nos quais a ação deste ID deve ser realizada. Se não forem listados níveis de execução, realiza a ação em todos os níveis.
action
descreve qual das várias ações possíveis deve ser realizada
process
diz qual processo, se for o caso, deve ser executado quando a ação nesta linha é realizada.

Algumas das ações comuns que podem ser especificadas em /etc/inittab são mostradas na Tablela 3. Consulte as man pages do inittab para ver outras possibilidades.

Tablela 3. Algumas ações comuns de inittab
AçãoPropósito
respawnReinicia o processo quando ele terminar. Usado geralmente para processos getty, que monitoram logins.
waitInicia o processo ao entrar no nível de execução especificado e espera por seu término antes que o init continue.
onceInicia o processo uma vez ao entrar no nível de execução especificado.
initdefaultEspecifica o nível de execução no qual entrar após o boot do sistema.
ctrlaltdelExecuta o processo associado quando init receber o sinal SIGINT, por exemplo, quando alguém no console do sistema pressionar CTRL-ALT-DEL.

Lista 9 mostra apenas a entrada do Ctrl-Alt-Delete da Lista 8. Agora você entende por que pressionar Ctrl-Alt-Delete faz com que o sistema seja reinicializado.

Lista 9. Trap do Ctrl-Alt-Delete
 # Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown
                -t3 -r now

Scripts de inicialização

Você pode ter observado várias linhas na Lista 8, tais como

 l5:5:wait:/etc/rc.d/rc 5

Neste exemplo, init irá executar o script (ou comando) /etc/rc.d/rc com o parâmetro 5 sempre ao entrar no nível de execução 5. init irá esperar que esse comando seja concluído antes de fazer qualquer outra coisa.

Esses scripts usados pelo init ao iniciar o sistema, alterar o nível de execução ou encerrar são geralmente armazenados no diretório /etc/init.d ou /etc/rc.d. Uma série de links simbólicos nos diretórios rcn.d, um diretório para cada nível de execução n, controla se um script é iniciado ao entrar em um nível de execução ou interrompido ao deixá-lo. Esses links começam com um K ou um S, seguidos de um número de dois dígitos e do nome do serviço, como mostra a Lista 10.

Lista 10. Scripts do init
[root@pinguino ~]# find /etc -path "*rc[0-9]*.d/???au*"
/etc/rc.d/rc2.d/S27auditd /etc/rc.d/rc2.d/K72autofs /etc/rc.d/rc4.d/S27auditd
/etc/rc.d/rc4.d/S28autofs /etc/rc.d/rc5.d/S27auditd /etc/rc.d/rc5.d/S28autofs
/etc/rc.d/rc0.d/K72autofs /etc/rc.d/rc0.d/K73auditd /etc/rc.d/rc6.d/K72autofs
/etc/rc.d/rc6.d/K73auditd /etc/rc.d/rc1.d/K72autofs /etc/rc.d/rc1.d/K73auditd
/etc/rc.d/rc3.d/S27auditd /etc/rc.d/rc3.d/S28autofs [root@pinguino ~]# cd
/etc/rc.d/rc5.d [root@pinguino rc5.d]# ls -l ???a* lrwxrwxrwx 1 root root 16
2008-04-07 11:29 S27auditd -> ../init.d/auditd lrwxrwxrwx 1 root root 16
2008-04-01 07:51 S28autofs -> ../init.d/autofs lrwxrwxrwx 1 root root 15
2008-04-01 14:03 S44acpid -> ../init.d/acpid lrwxrwxrwx 1 root root 13
2008-04-01 07:50 S95atd -> ../init.d/atd lrwxrwxrwx 1 root root 22 2008-04-01
07:54 S96avahi-daemon -> ../init.d/avahi-daemon lrwxrwxrwx 1 root root 17
2008-11-17 13:40 S99anacron -> ../init.d/anacron

Pode-se observar aqui que os serviços audit e autofs têm entradas Knn em todos os níveis de execução, e entradas Snn nos níveis de execução 3 e 5. O S indica que o serviço deve ser iniciado ao entrar no nível de execução, enquanto a entrada K indica que ele deve ser interrompido. O componente nn do nome do link indica a ordem de prioridade na qual o serviço deve ser iniciado ou interrompido. Neste exemplo, audit é iniciado antes de autofs, e é interrompido depois.

Consulte as man pages do init e inittab para obter mais informações.


Init vs. Upstart

Como vimos aqui, o método tradicional de boot em um sistema Linux é baseado no processo de inicialização System V do UNIX. Ele envolve carregar um disco de RAM inicial (initrd) e passar o controle para um programa chamado init, um programa que é geralmente instalado como parte do pacote sysvinit. O programa init executa uma série de scripts em uma ordem predefinida para ativar o sistema. Se algo esperado não está disponível, o processo init geralmente espera até que esteja. Embora isso funcione adequadamente em sistemas nos quais tudo é conhecido e conectado quando eles são iniciados, sistemas modernos com dispositivos hot plug, sistemas de arquivo de rede e até interfaces de rede que podem não estar disponíveis no momento da iniciação apresentam novos desafios. Certamente, esperar por hardware que pode não estar disponível por um longo período, ou mesmo por um período apenas relativamente longo, não é desejável.

Um processo de inicialização alternativo chamado upstart foi introduzido no Ubuntu 6.10 ("Edgy Eft") em 2006. Ele substituiu o processo init no Ubuntu e no Fedora, entre outros, embora ainda haja vestígios do init, e embora o poder completo do upstart ainda não seja atingido por algum tempo.

Ao contrário do conjunto estático de scripts de inicialização usado em sistemas anteriores, o sistema upstart é conduzido por eventos. Eventos podem ser acionados por mudanças no hardware, início ou interrupção de tarefas, ou por outros processos no sistema. Eventos são usados para acionar tarefas ou serviços, conhecidos coletivamente como tarefas. Por exemplo, a conexão de uma unidade USB pode fazer com que o serviço udev envie um evento block-device-added, o que faria com que uma tarefa definida verificasse /etc/fstab e montasse a unidade, se apropriado. Outro exemplo: um servidor da Web Apache pode ser iniciado apenas quando os recursos necessários de rede e de sistema de arquivos estejam disponíveis.

O programa de inicialização do upstart substitui /sbin/init. Tarefas do upstart são definidas no diretório /etc/init e seus subdiretórios. O sistema upstart processa atualmente /etc/inittab e scripts de inicialização System V. Em sistemas como as liberações recentes do Fedora, /etc/inittab provavelmente contém apenas a entrada de ID da ação initdefault. Sistemas Ubuntu recentes não têm /etc/inittab por padrão, mas é possível criar um se você quiser especificar um nível de execução padrão.

Upstart também tem o comando initctl para permitir interação com o daemon de iniciação do upstart. Isso permite iniciar ou interromper tarefas, listá-las, obter seus status, emitir eventos, reiniciar o processo de iniciação e assim por diante. Lista 11 mostra como usar initctl para obter uma lista de tarefas do upstart em um sistema Fedora 13.

Lista 11. Interagindo com o daemon de iniciação do upstart usando initctl
[ian@echidna ~]$ initctl list 
                rc stop/waiting
                tty (/dev/tty3) start/running, process 1486
                tty (/dev/tty2) start/running, process 1484
                tty (/dev/tty6) start/running, process 1492
                tty (/dev/tty5) start/running, process 1490
                tty (/dev/tty4) start/running, process 1488
                plymouth-shutdown stop/waiting
                control-alt-delete stop/waiting
                system-setup-keyboard start/running, process 1000
                readahead-collector stop/waiting
                vpnc-cleanup stop/waiting
                quit-plymouth stop/waiting
                rcS stop/waiting
                prefdm start/running, process 1479
                init-system-dbus stop/waiting
                ck-log-system-restart stop/waiting
                readahead stop/waiting
                ck-log-system-start stop/waiting
                start-ttys stop/waiting
                readahead-disable-services stop/waiting
                ck-log-system-stop stop/waiting
                rcS-sulogin stop/waiting
                serial stop/waiting

Para saber mais sobre o upstart, consulte Recursos.

Sua introdução a níveis de execução, encerramento e reinicialização do Linux está concluída.

Recursos

Aprender

Obter produtos e tecnologias

  • Avalie os produtos IBM da maneira que for melhor para você: faça download da versão de teste de um produto, avalie um produto online, use-o em um ambiente de nuvem ou passe algumas horas na SOA Sandbox aprendendo a implementar Arquitetura Orientada a Serviços de modo eficiente.

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux
ArticleID=619779
ArticleTitle= Aprenda Linux, 101: Níveis de execução, encerramento e reinicialização
publish-date=01262011