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.
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 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ível | Propósito |
|---|---|
| 0 | Encerrar (ou parar) o sistema |
| 1 | Modo de usuário único; geralmente com os alias s ou S |
| 6 | Reinicializar 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
| Level | Propósito |
|---|---|
| 2 | Modo de multiusuário sem rede |
| 3 | Modo de multiusuário com rede |
| 5 | Modo 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.
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.
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
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
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
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
Lista 5. telinit é na verdade um link simbólico para init
[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.
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.
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
haltpara o sistema. - O comando
poweroffé um link simbólico para o comandohalt, que para o sistema e tenta desligá-lo. - O comando
rebooté outro link simbólico para o comandohalt, 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.
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.
#
# 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ção | Propósito |
|---|---|
| respawn | Reinicia o processo quando ele terminar. Usado geralmente para processos getty, que monitoram logins. |
| wait | Inicia o processo ao entrar no nível de execução especificado e espera por seu término antes que o init continue. |
| once | Inicia o processo uma vez ao entrar no nível de execução especificado. |
| initdefault | Especifica o nível de execução no qual entrar após o boot do sistema. |
| ctrlaltdel | Executa 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 |
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.
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.
Aprender
- Use o parâmetro roteiro do developerWorks para o LPIC-1
para encontrar os artigos do developerWorks que o ajudarão a estudar para a
certificação LPIC-1 de acordo com os objetivos de abril de 2009.
- No site do programa LPIC ,
você encontra objetivos detalhados, listas de tarefas e exemplos de perguntas
referentes aos três níveis da certificação em administração de sistema do Linux
Professional Institute. Especificamente, consulte os objetivos de abril de 2009
referentes ao exame 101 do LPI e exame 102 do LPI. Consulte sempre o site do Programa LPIC para ver os
objetivos mais recentes.
- Revise toda a série de preparação para os exames LPI
no developerWorks para aprender os fundamentos de Linux e se preparar para a
certificação de administrador de sistema com base em objetivos dos exames LPI
anteriores a abril de 2009.
- O Linux BootPrompt-HowTo
ajuda a entender parâmetros de boot.
- Consulte Visão
geral do upstart para obter mais informações sobre o upstart.
- Na zona Linux do
developerWorks, você encontrará muitos artigos e
tutoriais de instruções, bem como downloads, fóruns de discussão e muitos
outros recursos para desenvolvedores e administradores Linux.
- Fique por dentro dos eventos técnicos e webcasts do developerWorks focados em uma série de
produtos IBM e tópicos do segmento de mercado de TI.
- Participe de um briefing ao vivo e gratuito developerWorks para se atualizar rapidamente
sobre produtos e ferramentas IBM, bem como tendências do segmento de mercado de TI.
- Assista as demos on
demand no developerWorks que abrangem desde demos de instalação e
configuração de produtos para iniciantes até funcionalidades avançadas para
desenvolvedores experientes.
- Siga o DeveloperWorks no Twitter ou
inscreva-se para receber tweets sobre o Linux no developerWorks.
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
- Participar do fórum de discussão.
- Envolva-se na comunidade My
developerWorks. Entre em contato com outros usuários do developerWorks e
explore os blogs, fóruns, grupos e wikis voltados para desenvolvedores.
Ian 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.