Adicionais do Configurador Linux Introdução O jeito mais comum de se colocar procedimentos de inicialização cus­ tomizados em uma máquina é editar um script ou arquivo de lote. No Unix, isso é feito adicionando-se comandos ao script rc.local. Infe­ lizmente, ele tem muitas limitações. Os adicionais do Configurador Linux, assim como os scripts de inicialização Sysv melhorados provém uma alternativa melhor. Esses adicionais também são chamados de "add- ons" ou "dropins". 11.. SSccrriipptt ddee iinniicciiaalliizzaaççããoo SSyyssvv oouu aaddiicciioonnaaiiss ddoo CCoonnffiigguurraaddoorr LLiinnuuxx Ambos oferecem a mesma funcionalidade, mas definir um adicional é muito mais fácil (pois há uma interface para fazê-lo). Note que atualmente, os scripts de inicialização Sysv (estilo Unix System V) que vêm com todas as distribuições são muito limitados em funcionalidade. O documento seguinte explica como você pode melhorar os scripts Sysv que você atualmente possui: http://www.solucorp.qc.ca/linuxconf/tech/enhsysv 11..11.. UUmm aaddiicciioonnaall ccoomm oo mmeessmmoo nnoommee ddee uumm ssccrriipptt SSyyssvv Se você der o mesmo nome de um script Sysv a um adicional, este terá precedência. O script não será mais chamado. Muitos podem criar um adicional e simplesmente definir os comandos de inicialização, parada e recarga chamando o script Sysv. É um jeito fácil de se melhorar um script Sysv sem alterá-lo e ainda o mantendo compatível no caso de uma atualização. 22.. TTaarreeffaass Um adicional informa como inicializar, parar e reinicializar um pacote, e também provê informações ao Configurador Linux para que ele decida que atitude tomar (inicializar, parar, reinicializar). 33.. CCaammppooss ddaa ccaaiixxaa ddee ddiiáállooggoo Muitos campos são opcionais. Aqui segue uma explanação de todos. Ambos os adicionais e os scripts Sysv são tratados da mesma maneira pelo Configurador Linux. 33..11.. NNoommee ddoo ppaaccoottee Simplesmente coloque um nome. Cada adicional tem um nome único e todos são guardados como arquivos ASCII no diretório /etc/linuxconf/control. O nome é usado como uma chave para vários outros serviços como: · Versões de perfis de sistema · Gerenciamento de várias máquinas · Controle de atividade dos serviços 33..22.. RReevviissããoo ddoo aaddiicciioonnaall Atualmente não usado, coloque o número 1 aqui. 33..33.. DDeessccrriiççããoo ddoo ppaaccoottee Coloque aqui um texto breve que descreva o que este pacote faz. Faça um texto o menor o possível, pois ele será usado para construir itens de menu e caixas de diálogo. 33..44.. CCoommaannddoo ddee iinniicciiaalliizzaaççããoo Provê o comando completo (com o argumento necessário) para inicializar o pacote. 33..55.. CCoommaannddoo ddee ppaarraaddaa Este campo é opcional. Coloque o comando completo e o argumento necessário para parar o pacote. Se este campo for vazio, o Configurador Linux usará o nome do processo e o matará. Veja abaixo. 33..66.. CCoommaannddoo ddee rreeccaarrggaa Este campo é opcional. Coloque o comando completo e o argumento necessário para reinicializar o pacote. Se este campo for vazio, o Configurador Linux gerará uma comando de parada e um de inicialização. 33..77.. CCoommaannddoo ddee tteessttee Este campo é opcional e apenas necessário para pacotes complexos. O Configurador Linux faz vários testes, comparando a idade do processo associada com o pacote com a data de revisão dos arquivos de configuração. Se os arquivos de configuração são mais recentes, o Configurador Linux dispara um comando de recarga (ou uma seqüência de parada/inicialização) no pacote. Alguns pacotes têm arquivos de configuração complexos e não podem ser informados no adicional, ou seu estado é influenciado por outros fatores. O comando de teste deixa um pacote decidir se ele deve ser reinicializado, parado ou inicializado. O comando de teste é apenas a rota do comando. O Configurador Linux o chamará com o argumento "probe". O comando reage a esse argumento mostrando linhas ou nada, se nada deve ser feito. Cada linha corresponde a uma ação específica. As ações padrão "start", "stop" e "restart" serão interpretadas pelo Configurador Linux e ele as usará para fazer a ação. O comando de teste pode também retornar um "unknown" (para o Configurador Linux). Nesse caso, o próprio comando de teste será chamado para tomar as ações. 33..77..11.. FFuunncciioonnaalliiddaaddee ddee tteessttee nnuumm ssccrriipptt SSyyssvv Adicionando a linha seguinte a um script Sysv, faz o Configurador Linux executar o script com o argumento "probe". A saída é usada como o adicional. # probe: true 33..88.. LLiimmppaa nnaa iinniicciiaalliizzaaççããoo Este campo é opcional. Coloque o comando completo e o argumento. Este comando será executado pelo Configurador Linux na inicialização, antes de aparecer o menu de seleção de nível de execução. A saída deste comando será registrada em "Tarefas antes de inicializar", nos registros do Configurador Linux. 33..99.. PPrroocceessssee nnoommeess Esta seção é opcional. Você deve informar o nome dos vários processos inicializados pelo comando de inicialização (servidores persistentes). Se você deixar esta seção vazia, o Configurador Linux obterá o nome de cada processo pelo próprio comando de inicialização. Por exemplo, se o comando de inicialização for: /usr/sbin/foo -a -b o nome do processo é foo. Quando dados vários nomes de processo, o Configurador Linux olhará para eles para descobrir se o pacote está com a data correta quando comparado com seus arquivos de configuração. 33..99..11.. PPrroocceessssee nnoommeess ccoomm ssccrriipptt SSyyssvv Com o indicador seguinte pode-se especificar os nomes dos processos inicializados pelo script Sysv. Você pode especificar o indicador várias vezes. # processname: foo 33..1100.. AArrqquuiivvooss PPIIDD Esta seção é opcional. Alguns pacotes inicializam múltiplas instâncias de um servidor. O Configurador Linux deve saber qual é o mestre para que possa monitorá-lo. Muitos pacotes produzem um pequeno arquivo texto contendo a identificação do processo principal do pacote. Este arquivo geralmente é guardado em /var/run, com a extensão .pid. Um pacote que inicializa vários processos pode ter vários arquivos PID. 33..1100..11.. AArrqquuiivvooss PPIIDD ccoomm ssccrriipptt SSyyssvv Com o indicador seguinte pode-se especificar os arquivos PID associados com o script Sysv. Você pode especificar o indicador várias vezes. # pidfile: /var/run/foo.pid 33..1111.. CCoonnttrroollee ddee aattiivvaaççããoo Esta seção diz ao Configurador Linux quando o pacote deve ser inicializado. 33..1111..11.. IInniicciiaa ddeeppooiiss ddoo ppaaccoottee Este campo é opcional. Você pode especificar um nome do pacote aqui. Há uma lista de ajuda que mostra todos os pacotes disponíveis. O Configurador Linux inicializará ou testará o pacote corrente após o pacote que você selecionou aqui. 33..1111..22.. IInniicciiaa nnoo nníívveell ddee eexxeeccuuççããoo O Configurador Linux define três níveis de atividade de rede: · nenhuma rede · ambiente de rede do cliente · ambiente de rede do servidor Aqui você define em qual nível de execução o pacote deve ser inicializado. Um pacote inicializado em um dado nível de execução também estará disponível nos outros. Por exemplo, se você decidir ativar seu pacote no nível de execução "ambiente de rede do cliente", ele também estará disponível no "ambiente de rede do servidor". Você tem controle sobre o nível de execução de rede na inicialização do sistema e no menu "Painel de controle". 33..1111..33.. PPaarraarr nnoo nníívveell ddee eexxeeccuuççããoo No campo anterior, você decidiu em qual nível de execução você queria inicializar o pacote. Aqui, você decide em qual nível de execução ele deve ser encerrado. Você também pode selecionar que o pacote nunca deve ser encerrado. 33..1122.. AArrqquuiivvooss ddee ccoonnffiigguurraaççããoo Nesta seção, você deve informar todos os arquivos de configuração (se possível) que afetam o estado de um pacote. Para cada arquivo de configuração, você pode especificar se o pacote tem a habilidade de auto-recarregá-lo. Arquivos de configuração auto-recarregávies não participarão do teste que o Configurador Linux normalmente faz para decidir se um pacote deve ser reinicializado. Apesar de o arquivo auto-recarregável poder ser omitido, é melhor informá-lo aqui mesmo assim, pois eles assim participam automaticamente das "versões de perfis de sistema" e "gerenciamento de várias máquinas". 33..1122..11.. AArrqquuiivvooss ddee ccoonnffiigguurraaççããoo ccoomm ssccrriipptt SSyyssvv Com o indicador seguinte pode-se especificar os arquivos de configuração que afetarão o estado do pacote. Você pode especificar o indicador várias vezes. Opcionalmente, cada arquivo de configuração é seguido pela palavra-chave "autoreload" # config: /etc/foo.conf [ autoreload ] 33..1133.. CCoommeennttáárriiooss Você pode colocar alguns comentários sobre este pacote, que serão apenas referências que o Configurador Linux não utilizará, ou mostrará em algum lugar. 44.. PPoorr qquuêê hháá dduuaass eennttrraaddaass ppaarraa eeddiittaarr aaddiicciioonnaaiiss?? Há uma chamada "Sobrescrever adicionais do Configurador Linux" e outra "Criar itens adicionais do Configurador Linux". Ambas parecem apontar para o mesmo menu, mas uma pequena diferença: O menu "Criar" é usado para editar o arquivo do adicional em /etc/linuxconf/control. O menu "Sobrescrever" é usado para editar o mesmo arquivo, mas as mudanças não são guardadas no próprio arquivo, mas no arquivo /etc/configuração.linuxconf. Assim sendo, o menu "Sobrescrever" é usado para fazer mudanças locais, e o "Criar" para manipular o adicional diretamente. Se você não pretende distribuir um adicional, a diferença é discutível. Sempre use o menu "Criar".