O programa INIT

O init é um dos programas absolutamente essenciais para a operação de um sistema Linux, mas que a maioria dos usuários pode ignorar. Uma boa distribuição Linux conterá a configuração de um init que funcionará com a maioria dos sistemas e não haverá necessidade de se fazer absolutamente nada. Porém aqui apresento informações aos que gostam de conhecer melhor sobre o S.O.

[ Hits: 64.934 ]

Por: Adriano Boer em 21/02/2009


Configurações iniciais no /etc/inittab



O arquivo /etc/inittab tem algumas funcionalidades especiais que permitem ações diferenciadas em situações especiais. Estas funcionalidades são definidas através de palavras chaves utilizadas no terceiro campo. Alguns exemplos:

powerwait

Permite que o init encerre o sistema na falta de energia elétrica. Assume que o sistema está utilizando uma unidade de alimentação extra (no-break) e que o.software da unidade informará sobre a falta de energia.

ctrl alt del

Permite ao init reinicializar o sistema, quando as teclas ctrl-alt-del forem pressionadas simultaneamente. O administrador pode configurar para que seja executada outra função. Isto é aplicável, por exemplo, nos casos em que o sistema esteja em uma localização pública.

sysinit

Comando que deve ser executado quando o sistema for inicializado. Este comando pode limpar o conteúdo do /tmp, por exemplo.

Esta lista não é completa. Ver a página de manual do inittab(5) para todas as possibilidades e detalhes de como utilizá-las.

Iniciando em modo mono-usuário

Um nível de execução extremamente importante é o modo mono-usuário, no qual somente o administrador do sistema utiliza a máquina e o menor número possível de serviços (inclusive logins) estarão disponíveis.

Este modo de execução é necessário para algumas tarefas administrativas, tais como na execução do fsck na partição /usr, isto requer que a partição esteja desmontada, o que não pode ocorrer a menos que todos os serviços do sistema estejam finalizados.

Um sistema em execução pode mudar para mono-usuário através do comando telinit. Durante a inicialização do sistema a palavra single ou emergency, na linha de comando do kernel, faz com que o init seja informado do nível de execução a iniciar (a linha de comando do kernel pode variar de sistema para sistema. Depende de como estamos inicializando o sistema).

A inicialização em modo mono-usuário pode ser necessária para executar-se o comando fsck manualmente, antes de qualquer montagem ou acesso a uma partição /usr com problemas (qualquer atividade em um sistema de arquivos inconsistente pode trazer mais problemas, devendo o fsck ser executado o mais rapidamente possível).

Os scripts de inicialização do init automaticamente entrarão em modo mono-usuário caso o comando fsck executado de forma automática apresente algum problema durante a inicialização do sistema. Esta é uma tentativa de prevenir que o sistema utilize um sistema de arquivos danificado e que o fsck não possa corrigir automaticamente. Tais casos são relativamente raros e usualmente envolvem um disco rígido com problemas ou uma versão experimental do kernel, porém é desejável que se esteja preparado.

Como medida de segurança, um sistema adequadamente configurado pedirá a senha do root antes de iniciar um interpretador em modo mono-usuário. De outra forma seria fácil simplesmente informar uma linha ao LILO e ganhar acesso ao sistema como superusuário. Caso o problema esteja no arquivo /etc/passwd, o melhor é ter-se à mão um disquete de inicialização.

Exemplos de utilização

Inicialização do servidor de aplicações Java Apache Tomcat. Em servidor de aplicação Java é extremamente desejável que o serviço responsável pelas aplicações seja inicializado junto com o sistema. Uma das formas de se fazer isso é através do init através da seguinte linha.

tom:23:respawn:su - -c "/usr/java/tomcat/bin/catalina.sh run -security" >/dev/null 2>&1

A linha acima diz ao init que sempre que ele rodar nos run-levels 2 e 3 deverá executar o tomcat utilizando a ação respawn que fará com que o processo seja reinicializado caso ele seja finalizado.

Página anterior    

Páginas do artigo
   1. Introdução ao INIT
   2. Configuração do INIT
   3. Níveis de execução
   4. Configurações iniciais no /etc/inittab
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Copiar um DVD através do k9copy no Insigne Momentum 5.0

Construa sua própria URA (IVR) no seu Asterisk

Migrando seu desktop para software livre

Vyatta, o concorrente livre dos roteadores Cisco

Instalando e utilizando o LimeWire no Debian

  
Comentários
[1] Comentário enviado por pogo em 21/02/2009 - 14:20h

excelente texto, parabéns!
isso também é muito útil para quem vai fazer a LPI... =)

[2] Comentário enviado por cassimirinho em 21/02/2009 - 21:19h

Como faço para editar no ubuntu? (já que o inittab não existe neste diretório)

Minha máquina é um pouco limita de hardware(processamento) e gostaria de dar uma otimizada e eliminando recursos que não tenho e não preciso utilizar. Segue o /etc/init.d/
acpid glibc.sh mysql-ndb-mgm stop-bootlogd
acpi-support hal networking stop-bootlogd-single
alsa-utils halt pcmciautils stop-readahead
anacron hostname.sh policykit sysklogd
apache2 hotkey-setup powernowd system-tools-backends
apmd hwclockfirst.sh powernowd.early udev
apparmor hwclock.sh pppd-dns udev-finish
apport keyboard-setup procps ufw
atd killprocs pulseaudio uml-utilities
avahi-daemon klogd rc umountfs
binfmt-support laptop-mode rc.local umountnfs.sh
bluetooth linux-restricted-modules-common rcS umountroot
bootlogd loopback readahead urandom
bootmisc.sh module-init-tools readahead-desktop usplash
checkfs.sh mountall-bootclean.sh README vbesave
checkroot.sh mountall.sh reboot vboxdrv
console-screen.kbd.sh mountdevsubfs.sh rmnologin virtualbox-ose
console-setup mountkernfs.sh rsync winbind
cron mountnfs-bootclean.sh samba wpa-ifupdown
cups mountnfs.sh screen-cleanup x11-common
dbus mountoverflowtmp sendsigs xserver-xorg-input-wacom
dkms_autoinstaller mtab.sh single
dns-clean mysql skeleton
gdm mysql-ndb ssh


Se eu apenas deletar algum arquivo desses resolve ou terei problemas?

[3] Comentário enviado por araujo_silva em 22/02/2009 - 13:03h

O sistema Ubuntu o arquivo de inicialização para a estrutura baseada no diretorio /etc/event.d, onde os eventos de inicialização encontram-se distribuidos em arquivos que inicializam serviços específicos. Esta organização apresenta o nível 2 como nível padrão (/etc/event.d/rc2) e os comandos initctl para gerência de eventos.

$ sudo initctl list
logd (stop) waiting
rc-default (stop) waiting
rc0 (stop) waiting
...
tty5 (start) running, process 4720
tty6 (start) running, process 4727

$ cat /etc/event.d/tty1
# tty1 – getty
#
# This service maintains a getty on tty1 from the point when
# the system is started until it is shut down again.

start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5

stop on runlevel 0
stop on runlevel 1
stop on runlevel 6 r

espawn
exec /sbin/getty 38400 tty1

Circule pelos arquivos e compare com o arquivo /etc/inittab para atvar funcionalidades equivalentes.

Abraços

araujo_silva

[4] Comentário enviado por cassimirinho em 22/02/2009 - 19:34h

Não entendi, "circule pelos arquivos e compare..." eu não tenho o /etc/inittab
Seguindo esses dois comando que você listou apareceu e mesma coisa postada aqui.

[5] Comentário enviado por nicolo em 24/02/2009 - 15:12h

Excelente!

[6] Comentário enviado por ramontcruz em 09/03/2009 - 10:12h

valeu demais a pena ter lido!!!
parabens!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts