# O Manual do &ksysv;

Peter Putzer

    putzer@kde.org

Marcus Gama

    marcus_gama@uol.com.br

Tradução
2001-03-21
1.03.06
1998 2000 2001 Peter Putzer
&FDLNotice;

O &ksysv; é um editor gráfico para a configuração do init estilo SysV.

KDE KSysV Nível de execução Editor de nível de execução init do System V

## Introdução

Bem-vindo ao Editor de Init System V do &kde;, normalmente conhecido (e referenciado daqui em diante) por &ksysv;. Esta seção introduz alguns conceitos e explica o que você pode fazer com o &ksysv;.

## Uma Breve Descrição do Init do System V

A explicação que se segue é copiada do tksysv (uma inspiração para o &ksysv;):

O init do System V está tornando-se o padrão do mundo do &Linux; para controlar a inicialização de software na inicialização. Isto porque é mais fácil de usar e mais poderoso e flexível que o init tradicional do BSD.

Não viajarei pela história aqui (principalmente porque não a conheço :-).

O executável init está localizado em `/sbin` e não em `/etc`. Isto é importante porque o usuário pode tentar atualizar uma máquina para o init do System V sem reinstalar e reformatar. O kernel do &Linux; procura o init em `/etc` primeiro, por isso você deve certificar-se de retirar o init antigo, se lá existir algum.

O init do SysV também difere do init do BSD na medida em que os arquivos de configuração estão numa sub-pasta de `/etc` em vez de residir diretamente nesta pasta. Esta sub-pasta chama-se `rc.d`. Nela, o usuário irá encontrar o `rc.sysinit` e as seguintes pastas:

- `init.d/`

- `rc0.d/`

- `rc1.d/`

- `rc2.d/`

- `rc3.d/`

- `rc4.d/`

- `rc5.d/`

- `rc6.d`

A `init.d` contém um conjunto de scripts. Basicamente, você precisa de um script por cada serviço que precise iniciar na inicialização da máquina ou quando entra em outro nível de execução. Os serviços incluem coisas como a rede, o NFS, o &Sendmail;, o httpd, &etc;. Os serviços não incluem coisas como o `setserial` que só precisa ser executado uma vez e depois se encerra. Esse tipo de coisa deve ir para o arquivo `rc.local`.

O `rc.local` deve estar em `/etc/rc.d` se deseja ter um. A maioria dos sistemas inclui um mesmo que não faça muita coisa. Você pode também inserir um arquivo `rc.serial` em `/etc/rc.d` se precisar fazer algo relacionado com as portas seriais na inicialização.

A cadeia de eventos é a seguinte:

1. O kernel procura em vários locais pelo init e executa o primeiro que encontrar.

2. O init executa o `/etc/rc.d/rc.sysinit`.

3. O `rc.sysinit` faz um conjunto de coisas necessárias e depois executa o `rc.serial` (se existir)

4. O init executa o `rc.local`

5. O init executa todos os scripts para o nível de execução padrão

O nível de execução padrão é escolhido no `/etc/inittab`. Você deve ter uma linha no topo do tipo:

    id:3:initdefault:

A partir dela você deve ver a segunda coluna e ver que o nível de execução padrão é o 3, como costuma ser na maioria dos sistemas. Se quiser mudá-lo, você pode editar o `/etc/inittab` manualmente e mudar o 3. Cuidado ao mexer no inittab. Se corrompê-lo, você pode corrigí-lo reinicializando o sistema e digitando:

    LILO boot: linux single

Isto deve permitir-lhe inicializar no modo mono-usuário de modo a que possa corrigir o problema.

Agora, como ele executa os scripts corretos? Se você digitar ``ls` `-l`` em `rc3.d`, poderá ver algo do gênero:

    lrwxrwxrwx 1 root root 13 13:11 S10network -> ../init.d/network
    lrwxrwxrwx 1 root root 16 13:11 S30syslog -> ../init.d/syslog
    lrwxrwxrwx 1 root root 14 13:32 S40cron -> ../init.d/cron
    lrwxrwxrwx 1 root root 14 13:11 S50inet -> ../init.d/inet
    lrwxrwxrwx 1 root root 13 13:11 S60nfs -> ../init.d/nfs
    lrwxrwxrwx 1 root root 15 13:11 S70nfsfs -> ../init.d/nfsfs
    lrwxrwxrwx 1 root root 18 13:11 S75keytable -> ../init.d/keytable
    lrwxrwxrwx 1 root root 23 13:11 S80sendmail -> ../init.d/sendmail.init
    lrwxrwxrwx 1 root root 18 13:11 S90lpd -> ../init.d/lpd.init
    lrwxrwxrwx 1 root root 11 13:11 S99local -> ../rc.local

O que você irá reparar é que não existem arquivos reais na pasta. Tudo o que existe são ligações para os scripts na pasta `init.d`.

As ligações também têm um `S` e um número no início. O `S` significa que o script deve ser iniciado e um `K` significa que deve ser parado. O número é simplesmente para ordenação. O init irá iniciar todos os serviços baseando-se na ordem em que eles aparecem. Você pode duplicar os números, mas isso só trará confusão de algum modo. Você só precisa de um número de dois algarismos, em conjunto com um `S` ou um `K` maiúsculos para iniciar ou interromper os serviços que precisa.

Como ele inicia e termina os serviços? Simples. Cada um dos scripts é feito de maneira a aceitar um argumento que pode ser `start` e `stop`. De fato, você pode executar esses scripts manualmente com um comando do estilo:

    /etc/rc.d/init.d/httpd.init stop

Para parar o servidor httpd. O init simplesmente lê o nome e se tiver um `K`, ele invoca o script com o argumento `stop`. Se tiver um `S` ele invoca o script com o argumento `start`.

### Porquê Todos Estes Níveis de Execução?

Algumas pessoas querem uma maneira fácil de configurar as máquinas para propiciarem usos múltiplos. Eu posso ter um nível de execução servidor que executa o httpd, o sendmail, a rede, &etc;. Também poderei ter um usuário que execute o kdm, a rede, &etc;.

## Fundamentos da Interface

Aqui você aprende como usar o &ksysv;, o que não deve ser complicado uma vez que foi desenhado para ser tão amigável quanto possível.

### Mouse

A utilização do &ksysv; com um mouse ou outro dispositivo do gênero é simples: basta arrastar um dos elementos da área Serviços Disponíveis para um dos seis níveis de execução para o iniciá-lo (ou terminá-lo, respectivamente) nesse nível de execução.

Você pode também mover os scripts entre níveis de execução ou mudar a posição num determinado nível, arrastando-os pela interface. O que isso faz é remover o elemento da sua posição (ou nível de execução) original. Isto não acontece quando arrasta um elemento da área Serviços Disponíveis.

Os elementos são movidos quando arrasta-os para uma nova área. Para copiar um serviço para um nível diferente, você debe selecionar Copiar do menu do aplicativo Editar ou do menu de contexto e Colar no nível de destino.

O número de ordem de um elemento às vezes pode não ser calculável. Neste caso você deve editar os números de ordem dos elementos envolventes antes de tentar inserir de novo o serviço.

Os números de ordem podem ir de 00 a 99, mas não podem ser maiores que isso.

Você pode excluir elementos arrastando-os para a área do Lata de Lixo (simbolizada por um ícone que representa uma lata do lixo).

Atualmente não existe maneira de recuperar os itens arrastados para a Lata de Lixo, por isso tenha cuidado!

### Teclado

Você pode usar a tecla Tab para mudar de painel para painel (Serviços Disponíveis, Nível de execução 1 Iniciar, Nível de execução 1 Parar, &etc;) e as teclas dos cursores para mover a seleção para cima e para baixo.

Para mover um elemento para um nível diferente, execute Cortar sobre ele para a área de transferência (através de &Ctrl; X e depois Colar no nível de destino (com &Ctrl; V).

Para mudar manualmente o número de ordem ou o nome de um elemento, clique Enter para abrir a janela de propriedades. Utilize a tecla Tab para alternar pelos diferentes campos. Feche a janela clicando Enter para aceitar as modificações ou em Esc para cancelá-las.

### As Entradas do Menu

Uma descrição do menu do &ksysv; opção a opção.

#### O menu Arquivo

Devido ao perigo de perda de dados, todas as opções do menu Arquivo pedem uma confirmação antes de realizar a sua tarefa.

Arquivo Reverter Configuração...

  Esquece todas as alterações feitas e reverte para a última configuração salva.

&Ctrl; O Arquivo Abrir...

  Abre uma configuração previamente salva.

&Ctrl; S Arquivo SalvarConfiguração

  Torna suas alterações permanentes.O salvamento não gera nenhum arquivo de cópia de segurança, por isso use esta opção com cuidado.

Arquivo Salvar Como...

  Salva uma cópia da sua nova configuração.

&Ctrl; L Arquivo Salvar Registro...

  Salva um registro

&Ctrl; P Arquivo Imprimir Registro...

  Imprime uma cópia do registro.

&Ctrl; Q Arquivo Sair

  Sai do &ksysv;.

#### O menu Editar

&Ctrl; Z Editar Desfazer

  Desfaz a última alteração realizada.

&Ctrl; Shift Z Editar Refazer

  Refaz a última ação desfeita.

&Ctrl; X Editar Cortar

  Corta o serviço atualmente selecionado para a área de transferência.

&Ctrl; C Editar Copiar

  Copia a entrada selecionada para a área de transferência, sem removê-la da sua posição original.

&Ctrl; V Editar Colar

  Cola o conteúdo da área de transferência na posição atual do cursor.

Editar Propriedades

  Abre o diálogo de propriedades do item selecionado.

#### O menu Ferramentas

Ferramentas Iniciar Serviço...

  Inicia o serviço selecionado

Ferramentas Parar Serviço...

  Para o serviço selecionado

Ferramentas Reiniciar Serviço...

  Reinicia o serviço selecionado.

Ferramentas Editar Serviço...

  Altera o serviço selecionado

#### O menu Configurações

Configurações Mostrar a Barra de Ferramentas

  Liga e desliga a visibilidade da barra de ferramentas.

Configurações Mostrar a Barra de Estado

  Liga e desliga a visibilidade da barra de estado.

Configurações Mostrar Registro

  Liga e desliga a visibilidade da janela do registro

Configurações Salvar Configurações

  Salva sua configuração atual.

Configurações Configurar Atalhos...

  Personaliza os atalhos de teclado do aplicativo.

Configurações Configurar as Barras de Ferramentas...

  Personaliza a barra de ferramentas.

Configurações Configurar o Editor de SysV-Init...

  Personaliza o comportamento do &ksysv;

#### O menu Ajuda

&help.menu.documentation;

## Configuração

Todas as opções são salvas no `$`KDEHOME`/.kde/share/config/ksysvrc`. Os padrões são obtidos a partir do arquivo global (`$`KDEDIR`/share/config/ksysvrc`), se disponível, ou são gerados dentro do &ksysv;. As alterações aos padrões são salvas no seu `ksysvrc` local.

### Seções Reconhecidas

As seções reconhecidas e as suas chaves, além dos seus valores padrão.

#### [Path Settings]

Keyword Default Description
- ScriptPath `/etc/rc.d/init.d` Path to the scripts used for starting and stopping services.
- RunlevelPath `/etc/rc.d` Path to the runlevel subfolders.

#### [Colors]

Keyword Default Description
- Changed red Color used for changed entries
- New blue Color used for new entries

#### [Geometry]

Keyword Default Description
- Width Width of &ksysv;'s window
- Height Height of &ksysv;'s

#### [Other Settings]

Keyword Default Description
- ToolBar true If the toolbar is enabled or not
- StatusBar true If the statusbar is enabled or not
- ShowLog true If the log window is shown or not
- PanningFactor 80 100 - PanningFactor = percentage of window reserved for the logfile display

## Perguntas e Respostas

Andei mexendo com o nível de execução padrão, e agora a minha máquina não consegue inicializar. O que devo fazer?

Digite `linux single` na linha de comando do LILO e clique Enter para iniciar em modo mono-usuário. Edite o arquivo `/etc/inittab` e altere o nível de execução padrão para um valor seguro. O `3` funciona normalmente.

A minha máquina se desliga logo iniciar

Veja a pergunta 1 acima.

Agendei alguns serviços para iniciarem no nível de execução X com o &ksysv;, por isso é que não estão funcionando?

Se está usando distribuições como a da SuSE ou a Delix (DLD), também deve alterar um arquivo específico da distribuição no diretório `/etc`. Dê uma olhada no manual da sua distribuição para mais detalhes.

A abordagem de inicialização de serviços usada pelas distribuições acima citadas torna mais fácil a configuração de serviços com as ferramentas de configuração proprietárias que estas distribuições contêm, mas infelizmente não é um padrão. Os autores do &ksysv; planejam escrever uma extensão genérica para esta abordagem no futuro, mas não fiquem desde já na expectativa.

Se está usando uma distribuição diferente, verifique se possui todos os arquivos de configuração necessários para o serviço, e se estão nos locais corretos. Alguns servidores como por exemplo o Apache (aka `httpd`) simplesmente terminam sem dizer nada se os seus arquivos de configuração não existirem ou estiverem mal configurados.

## Semântica normalizada dos Níveis de Execução

Isto varia de distribuição para distribuição, por isso esta é uma lista incompleta das distribuições comuns de &Linux;. Se tiver distribuições adicionais, envie por email ao autor a informação adicional para que possa ser referenciada neste manual.

&RedHat;
  Nível de Execução 0:

    termina (desliga a máquina)

  Nível de Execução 1:

    Modo mono-usuário.

  Nível de Execução 2:

    Multi-usuário sem o NFS.

  Nível de Execução 3:

    Multi-usuário com o suporte de rede completo.

  Nível de Execução 4:

    Não usado.

  Nível de Execução 5:

    Multi-usuário com o suporte de rede completo e o X11.

  Nível de Execução 6:

    Reiniciar

## Licença e Créditos

Direitos autorais do &ksysv; © 1997-1998 Peter Putzer

- Peter Putzer, putzer@kde.org - Programador

Documentação:

- Peter Putzer, putzer@kde.org - Conteúdo original

- Eric Bischoff, e.bischoff@noos.fr - Editor

Tradução de Marcus Gamamarcus_gama@uol.com.br

&underFDL; &underGPL;

## Instalação

&install.intro.documentation; &install.compile.documentation;