'\" -*- coding: UTF-8 -*- .\" Copyright (C) 1998-2004 Miquel van Smoorenburg. .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2 of the License, or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program; if not, write to the Free Software .\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA .\" .\"{{{}}} .\"{{{ Title .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH INIT 8 "29 Julho 2004" "sysvinit " "Manual de Administrador de Sistema Linux" .\"}}} .\"{{{ Name .SH NOME .\"}}} .\"{{{ Synopsis init, telinit \- inicialização do controle de processos .SH RESUMO \fB/sbin/init\fP [\fB \-a \fP] [\fB \-s \fP] [\fB \-b \fP] [ \fB\-z\fP \fIxxx\fP ] [\fB 0123456Ss \fP] .br \fB/sbin/init\fP [\fB \-\-version \fP] .br \fB/sbin/telinit\fP [ \fB\-t\fP \fISEGUNDOS\fP ] [\fB 0123456sSQqabcUu \fP] .br .\"}}} .\"{{{ Description \fB/sbin/telinit\fP [ \fB\-e\fP \fIVAR\fP[\fB=\fP\fIVAL\fP] ] .SH DESCRIÇÃO .\"{{{ init .SS Init \fBinit\fP É o pai de todos os processos. O seu papel principal é criar processos a partir de um script guardado no ficheiro \fI/etc/inittab\fP (veja \fBinittab\fP(5)). Este ficheiro geralmente tem entradas que fazem o \fBinit\fP gerar \fBgetty\fPs em cada linha que os utilizadores podem registar. Também controla processos autónomos requeridos por qualquer sistema particular. .PP .\"{{{ Runlevels .SH "RUNLEVELS (NÍVEIS DE EXECUÇÃO)" Um \fIrunlevel\fP é uma configuração de software do sistema que apenas permite que um grupo selecionado de processos exista. Os processos gerados pelo \fBinit\fP para cada um destes níveis de execução estão definidos no ficheiro \fI/etc/inittab\fP. \fBinit\fP pode estar em um de oito runlevels: \fB0\(en6\fP e \fBS\fP (também conhecido por \fBs\fP). O runlevel é modificado ao ter um utilizador privilegiado a correr \fBtelinit\fP, o qual envia sinais apropriados para o \fBinit\fP, a dizer\-lhe para qual runlevel deve comutar. .PP Os runlevels \fBS\fP, \fB0\fP, \fB1\fP, e \fB6\fP são reservados. O runlevel S é usado para inicializar o sistema no arranque. Quando se arranca o runlevel S (no arranque) ou runlevel 1 (comutar de um runlevel de multi\-utilizador) o sistema entra em "modo de único\-utilizador", após o qual o runlevel actual é S. O runlevel 0 é usado para parar o sistema; o runlevel 6 é usado para reiniciar o sistema. .PP Após arrancar através de S o sistema entra automaticamente em um dos runlevels de multi\-utilizador 2 a 5, a menos que existam problemas que precisem de ser corrigidos pelo administrador em modo de único\-utilizador. Normalmente após entrar em modo de único\-utilizador o administrador executa manutenção e depois reinicia o sistema. .PP Para mais informação, veja os manuais de \fBshutdown\fP(8) e \fBinittab\fP(5). .PP Os runlevels 7\-9 são também válidos, apesar de não estarem realmente documentados. Isto porque as variantes UNIX "tradicionais" não os usam. .PP .\"}}} Os runlevels \fIS\fP e \fIs\fP são o mesmo. Internamente são nomes alternativos para o mesmo runlevel. .PP .SH ARRANCAR Após o \fBinit\fP ser invocado como último passo da sequência de arranque do kernel, este procura o ficheiro \fI/etc/inittab\fP para ver se existe uma entrada do tipo \fBinitdefault\fP (veja \fBinittab\fP(5)). A entrada \fBinitdefault\fP determina o runlevel inicial do sistema. Se não existir tal entrada (ou não existir o \fI/etc/inittab\fP), tem de ser inserido um runlevel na consola do sistema. .PP O runlevel \fBS\fP ou \fBs\fP inicializa o sistema e não requer um ficheiro \fI/etc/inittab\fP. .PP Em modo de único utilizador, \fB/sbin/sulogin\fP é invocado em \fI/dev/console\fP. .PP Quando entra em modo de único utilizador, o \fBinit\fP inicializa as definições \fBstty\fP da consola para valores sãos. O modo local é definido. A velocidade do hardware e o handshaking não são alterados. .PP Quando entra em modo multi\-utilizador pela primeira vez, o \fBinit\fP executa as entradas \fBboot\fP e \fBbootwait\fP para permitir que os sistemas de ficheiros sejam montados antes dos utilizadores fazerem login. Depois todas as entradas que correspondem ao runlevel são processadas. .PP Quando arranca um novo processo, o \fBinit\fP primeiro verifica se o ficheiro \fI/etc/initscript\fP existe. Se existir, usa este script para arrancar o processo. .PP De cada vez que um filho termina, o \fBinit\fP regista o facto e a razão de este ter terminado em \fI/var/run/utmp\fP e \fI/var/log/wtmp\fP, desde que estes ficheiros existam. .SH "MODIFICAR OS RUNLEVELS" Após ter gerado todos os processos especificados, o \fBinit\fP espera que um dos seus processos descendentes termine, por um sinal de falha de energia, ou até ser sinalizado pelo \fBtelinit\fP para mudar o runlevel do sistema. Quando uma das três condições de cima ocorre, ele re\-examina o ficheiro \fI/etc/inittab\fP. Novas entradas podem ser adicionadas a este ficheiro a qualquer altura. No entanto, o \fBinit\fP ainda espera que uma das três condições de cima ocorra. Para fornecer uma resposta imediata, o comando \fBtelinit Q\fP ou \fBq\fP pode acordar o \fBinit\fP para re\-examinar (recarregar) o ficheiro \fI/etc/inittab\fP. .PP Se o \fBinit\fP não estiver em modo de único utilizador e receber um sinal de falha de energia (SIGPWR), ele lê o ficheiro \fI/etc/powerstatus\fP. Depois ele arranca um comando com base no conteúdo deste ficheiro. .IP F(AIL) A energia está a falhar, a UPS está a fornecer a energia. Executa as entradas \fBpowerwait\fP e \fBpowerfail\fP. .IP O(K) A energia foi restaurada, executa as entradas \fBpowerokwait\fP. .IP L(OW) A energia está a falhar e a UPS tem pouca bateria. Executa as entradas \fBpowerfailnow\fP. .PP Se \fI/etc/powerstatus\fP não existir ou conter nada mais do que as letras \fBF\fP, \fBO\fP ou \fBL\fP, o \fBinit\fP irá comportar\-se como se tivesse lido a letra \fBF\fP. .PP A utilização de \fBSIGPWR\fP e \fI/etc/powerstatus\fP está desencorajada. Alguém que queira interagir com o \fBinit\fP deve usar o canal de controle \fI/run/initctl\fP \- veja o manual \fBinitctl\fP(5) para mais documentação sobre isto. .PP .\"}}} .\"{{{ telinit Quando o \fBinit\fP é requerido para mudar o runlevel, eles envia o sinal de aviso \fBSIGTERM\fP a todos os processos que não estão definidos no novo runlevel. Depois espera 3 segundos antes de terminar à força estes processos via sinal \fBSIGKILL\fP. Note que o \fBinit\fP assume que todos estes processos (e os seus descendentes) permanecem no mesmo grupo de processos no qual o \fBinit\fP originalmente criou para eles. Se qualquer processo modificou a sua afiliação de grupo de processo não irá receber estes sinais. Tais processos precisam de ser terminados em separado. .SH TELINIT \fB/sbin/telinit\fP está vinculado a \fB/sbin/init\fP. Recebe um argumento de um caractere e faz sinal ao \fBinit\fP para executar a acção apropriada. Os seguintes argumentos servem como directivas para o \fBtelinit\fP: .IP "\fB0\fP, \fB1\fP, \fB2\fP, \fB3\fP, \fB4\fP, \fB5\fP ou \fB6\fP" diz ao \fBinit\fP para comutar para o nível de execução especificado. .IP "\fBa\fP, \fBb\fP, \fBc\fP" diz ao \fBinit\fP para processar apenas aquelas entradas no ficheiro \fB/etc/inittab\fP que têm runlevel \fBa\fP,\fBb\fP ou \fBc\fP. .IP "\fBQ\fP ou \fBq\fP" diz ao \fBinit\fP para re\-examinar o ficheiro \fI/etc/inittab\fP. .IP "\fBS\fP ou \fBs\fP" diz ao \fBinit\fP para comutar para modo de único utilizador. .IP "\fBU\fP ou \fBu\fP" diz ao \fBinit\fP para se re\-executar a ele próprio (preservando o estado). Não acontece o re\-examinar do ficheiro \fI/etc/inittab\fP. O runlevel deve ser um de \fBSs0123456\fP caso contrário o pedido será ignorado em silêncio. .PP O \fBtelinit\fP pode dizer ao \fBinit\fP quanto tempo deve esperar entre enviar aos processos os sinais \fBSIGTERM\fP e \fBSIGKILL\fP. A predefinição é 3 segundos, mas isto pode ser mudado com a opção \fB\-t\fP. .PP O \fBtelinit \-e\fP diz ao \fBinit\fP para mudar o ambiente para os processos que ele gera. O argumento de \fB\-e\fP ou está no formato de \fIVAR\fP=\fIVAL\fP o qual define a variável \fIVAR\fP para o valor \fIVAL\fP, ou no formato \fIVAR\fP (sem o sinal de igual) o qual remove a definição da variável \fIVAR\fP. .PP O \fBtelinit\fP só pode ser invocado por utilizadores com privilégios apropriados. .PP .\"}}} .\"}}} O binário \fBinit\fP verifica se é o \fBinit\fP ou o \fBtelinit\fP ao olhar para o seu \fIprocess id\fP; o id do verdadeiro processo do \fBinit\fP é sempre \fB1\fP. A partir conclui que em vez de se chamar o \fBtelinit\fP pode\-se simplesmente usar o \fBinit\fP como um atalho. .SH AMBIENTE O \fBInit\fP define as seguintes variáveis de ambiente para todos os seus filhos: .IP \fBPATH\fP \fI/bin:/usr/bin:/sbin:/usr/sbin\fP .IP \fBINIT_VERSION\fP Como o nome diz. Útil para determinar se um script corre directamente a partir do \fBinit\fP. .IP \fBRUNLEVEL\fP O actual nível de execução do sistema. .IP \fBPREVLEVEL\fP O runlevel anterior (útil após uma mudança de runlevel). .IP \fBCONSOLE\fP A consola do sistema. Isto é realmente herdado do kernel; no entanto se não for definido o \fBinit\fP irá defini\-lo para \fI/dev/console\fP por predefinição. .SH BOOTFLAGS É possível passar um número de bandeiras ao \fBinit\fP a partir do monitor de arranque (ex. LILO ou GRUB). O \fBinit\fP aceita as seguintes bandeiras: .TP 0.5i \fB\-s, S, single\fP Arranque em modo de único utilizador. Neste modo o \fI/etc/inittab\fP é examinado e os scripts rc de arranque são geralmente corridos antes da shell de modo de único utilizador ser arrancada. .PP .TP 0.5i \fB1\-5\fP O runlevel para o qual arrancar. .PP .TP 0.5i \fB\-b, emergency\fP Arranca directamente para shell de único utilizador sem correr quaisquer scripts de arranque. .PP .TP 0.5i \fB\-a, auto\fP O boot loader LILO adiciona a palavra "auto" à linha de comandos se arrancar o kernel com alinha de comandos predefinida (sem intervenção do utilizador). Se isto for encontrado o \fBinit\fP define a variável de ambiente "AUTOBOOT" para "yes". Note que você não pode usar isto para nenhuma medida de segurança \- é claro que o utilizador podia especificar "auto" ou \fB\-a\fP na linha de comandos manualmente. .PP .TP 0.5i \fB\-z \fP\fIxxx\fP O argumento para \fB\-z\fP é ignorado. Você pode usar isto para expandir um pouco a linha de comandos, para que tenha mais algum espaço na pilha. O \fBinit\fP pode então manipular a linha de comandos para que \fBps\fP(1) mostre o runlevel actual. .PP .TP 0.5i \fB\-\-version\fP Este argumento, quando usado por si só, mostra a versão actual do \fBinit\fP na consola/stdout. É uma maneira rápida de determinar qual software e versão do \fBinit\fP está a ser usado. Após a informação de versão ser mostrada, o \fBinit\fP termina imediatamente com um código de retorno de zero. .PP .SH INTERFACE O \fBinit\fP escuta num \fIfifo\fP em /dev, \fI/run/initctl\fP, por mensagens. O \fBTelinit\fP usa isto para comunicar com \fBinit\fP. A interface não está bem documentada nem acabada. Aqueles interessados devem estudar o ficheiro \fIinitreq.h\fP no sub\-directório \fIsrc/\fP do arquivo tar do código fonte do \fBinit\fP. .SH SINAIS O Init reage a vários sinais: .TP 0.5i \fBSIGHUP\fP Tem o mesmo efeito que \fBtelinit q\fP. .PP .TP 0.5i \fBSIGUSR1\fP Na receção destes sinais, o \fBinit\fP fecha e re\-abre o seu fifo de controle, \fB/run/initctl\fP. Útil para scripts de arranque quando \fI/dev\fP é remontado. .TP 0.5i \fBSIGUSR2\fP Quando o \fBinit\fP recebe \fBSIGUSR2\fP, o \fBinit\fP fecha e deixa o fifo de controle, \fB/run/initctl\fP, fechado. Isto pode ser usado para certificar que o \fBinit\fP não está a segurar nenhuns ficheiros abertos. No entanto, também previne o \fBinit\fP de mudar os runlevels. O que significa que comandos como o shutdown não funcionam mais. O fifo pode ser re\-aberto ao enviar ao \fBinit\fP o sinal \fBSIGUSR1\fP. .TP 0.5i \fBSIGINT\fP Normalmente o kernel envia este sinal ao \fBinit\fP quando CTRL\-ALT\-DEL é pressionado. Activa a acção \fIctrlaltdel\fP. .TP 0.5i \fBSIGWINCH\fP O kernel envia este sinal quando a tecla \fIKeyboardSignal\fP é pressionada. Activa a acção \fIkbrequest\fP. .\"{{{ Conforming to .SH "CONFORMIDADE COM" .\"}}} .\"{{{ Files O \fBinit\fP é compatível com o init do System V. Funcionam muito próximos com os scripts nos directórios \fI/etc/init.d\fP e \fI/etc/rc{runlevel}.d\fP. Se o seu sistema usa esta convenção, deverá existir um ficheiro \fIREADME\fP no directório \fI/etc/init.d\fP a explicar como estes scripts trabalham. .SH FICHEIROS .nf /etc/inittab /etc/initscript /dev/console /var/run/utmp /var/log/wtmp /run/initctl .fi .\"}}} .\"{{{ Warnings .SH AVISOS O \fBinit\fP assume que os processos e os descendentes dos processos permanecem no mesmo grupo de processos que foi originalmente criado para eles. Se os processos mudarem o seu grupo, o \fBinit\fP não consegue mata\-los e você pode acabar com dois processos a ler a partir de uma linha de terminal. .PP .\"}}} .\"{{{ Diagnostics Num sistema Debian, entrar no runlevel 1 faz com que todos os processos sejam mortos excepto para tópicos de kernel e o script que faz a matança e outros processos na sua sessão. Como consequência disto, não é seguro retornar de runlevel 1 para um runlevel de multi\-utilizador: os daemons que foram arrancados no runlevel S e são precisos para o funcionamento normal não estão mais a correr. O sistema deve ser reiniciado. .SH DIAGNÓSTICO .\"}}} .\"{{{ Author Se o \fBinit\fP descobrir que está continuamente a renascer uma entrada mais de 10 vezes em 2 minutos,irá assumir que existe um erro na string de comando, gerar uma mensagem de erro na consola do sistema, e recusar o renascer desta entrada até que ou tenham passado 5 minutos ou tenha recebido um sinal. Isto previne de comer os recursos do sistema quando alguém comete um erro tipográfico no ficheiro \fI/etc/inittab\fP ou o programa para a entrada foi removido. .SH AUTOR .\"}}} .\"{{{ See also .MT miquels@\:cistron\:.nl Miquel van Smoorenburg .ME , initial manual page by .MT u31b3hs@\:pool\:.informatik\:.rwth\-aachen\:.de Michael Haardt .ME . .SH "VEJA TAMBÉM" \fBgetty\fP(1), \fBlogin\fP(1), \fBsh\fP(1), \fBrunlevel\fP(8), \fBshutdown\fP(8), \fBkill\fP(1), \fBinitctl\fP(5), \fBinittab\fP(5), \fBinitscript\fP(5), \fButmp\fP(5) .\"}}}