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: 63.082 ]

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

Instalando o Qemu + kqemu no Ubuntu Breezy 5.10

VirtualBox 2.1.0: Rede no VirtualBox agora é fácil!

i3 - Tilling Window Manager

Remasterizando o Kurumin

Microsiga Protheus 8 Remote no Linux

  
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