# O Manual do &ksysv;

## Introdução

Bem-vindo ao Editor de Init System V do &kde;, normalmente conhecido (e referenciado daqui em diante) por &ksysv;. Esta secção introduz alguns conceitos e explica o que podes 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á a tornar-se a norma do mundo do &Linux; para controlar a inicialização do software no arranque. Isto porque é mais fácil de usar e mais poderoso e flexível que o init tradicional do BSD.

Não entrarei 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 utilizador pode tentar actualizar 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 tens que confirmar e retirar o init antigo, se lá estiver algum.

O init do SysV também difere do init do BSD na medida em que os ficheiros de configuração estão numa sub-directoria de `/etc` em vez de residir directamente nesta directoria. A tal-subdirectoria chama-se `rc.d`. Nela irás encontrar o `rc.sysinit` e as seguintes directorias:

- `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, precisas dum script por cada serviço que precises de iniciar no arranque ou quando entras noutro runlevel. 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 corrido uma vez e depois sai. Esse tipo de coisas deve ir para o ficheiro `rc.local`.

O `rc.local` deve estar em `/etc/rc.d` se quiseres ter um. A maioria dos sistemas inclui um mesmo que não faça muita coisa. Também podes inserir um ficheiro `rc.serial` em `/etc/rc.d` se precisares de fazer algo relacionado com as portas série no arranque.

A cadeia de eventos é a seguinte:

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

2. O init corre 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 'runlevel' pré-definido

O 'runlevel' pré-definido é escolhido no `/etc/inittab`. Deves ter uma linha no topo do tipo:

    id:3:initdefault:

A partir daqui deves ver a segunda coluna e ver que o 'runlevel' por omissão é o 3, como costuma ser na maioria dos sistemas. Se o quiseres mudar, podes editar o `/etc/inittab` à mão e mudares o 3. Cuidado ao mexeres no inittab. Se o corromperes, podes corrigi-lo reinicializando o sistema e escrevendo:

    LILO boot: linux
    single

Isto deve permitir-te arranque no modo mono-utilizador de modo a que possas corrigir o problema.

Agora, como é que ele corre os scripts correctos? Se escreveres ``ls` `-l`` em `rc3.d`, poderás 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 irás reparar é que não existem ficheiros reais na directoria. Tudo o que existe são ligações ('links') para os scripts na directoria `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 fins de ordenação. O init irá iniciar todos os serviços baseando-se na ordem em que eles aparecem. Podes duplicar os números, mas isso só te trará confusão de algum modo. Só precisas dum número de dois algarismos, em conjunto com um `S` ou um `K` maiúsculos para iniciares ou interromperes os serviços que precisas.

Como é que 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 facto, podes executar esses scripts manualmente com um comando do estilo:

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

Para parares 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 'Runlevels' ?

Algumas pessoas querem uma maneira fácil de configurar as máquinas para serem multiusos. Eu posso ter um 'runlevel' servidor que corre o httpd, o sendmail, a rede, etc. Também poderei ter um utilizador que corre o kdm, a rede, etc.

## Fundamental da Interface

Aqui aprendes como usar o &ksysv;, o que não deve ser complicado dado que foi desenhado para ser tão amigável quanto possível.

### Rato

A utilização do &ksysv; com um rato ou outro dispositivo do género é simples: basta arrastares um dos elementos da área Serviços Disponíveis para um dos seis 'runlevels' para o iniciar (ou terminar, respectivamente) nesse 'runlevel'.

Também podes mover os scripts entre 'runlevels' ou mudar a posição num dado 'runlevel', arrastando-os pela interface. O que faz é remover o elemento da sua posição (ou 'runlevel') original. Isto não acontece quando arrastas um elemento da área Serviços Disponíveis.

Os elementos são movidos quando os arrastas para uma nova área. Para copiares um serviço para um 'runlevel' diferente, tens de seleccionar Copiar do menu da aplicação Editar ou do menu de contexto e Colar no 'runlevel' de destino.

O número de ordem dum elemento às vezes pode não ser calculável. Neste caso tens de 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 superiores.

Podes apagar elementos arrastando-os para a área do Caixote do Lixo (simbolizada por um ícone que representa um caixote do lixo).

De momento não existe maneira de recuperar os itens arrastados para o Caixote do Lixo, por isso tem cuidado!

### Teclado

Podes usar a tecla Tab para mudares de painel para painel (Serviços Disponíveis, Runlevel 1 Iniciar, Runlevel 1 Parar, etc.) e as teclas dos cursores para mover a selecção para cima e para baixo.

Para moveres um elemento para um 'runlevel' diferente, executa Cortar sobre ele para a área de transferência (através de &Ctrl; X e depois Colar no 'runlevel' de destino (com &Ctrl; V).

Para mudares manualmente o número de ordem ou o nome dum elemento, carrega em Enter para abrires a janela de propriedades. Utiliza a tecla Tab para alternares pelos diferentes campos. Fecha a janela carregando em Enter para aceitares as modificações ou em Esc para as cancelares.

### As Opções do Menu

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

#### O menu Ficheiro

Por causa do perigo de perda de dados, todas as opções do menu Ficheiro pedem uma confirmação antes de realizarem a sua tarefa.

Ficheiro Reverter Configuração...

- Esquece todas as alterações que fizeste e reverte para a última configuração gravada.

&Ctrl; O Ficheiro Abrir...

- Abre uma configuração previamente gravada.

&Ctrl; S Ficheiro Gravar Configuração

- Torna as tuas alterações permanentes.A gravação não gera nenhuns ficheiros de salvaguarda, por isso usa esta opção com cuidado.

Ficheiro Gravar Como...

- Grava uma cópia da tua nova configuração.

&Ctrl; L Ficheiro Gravar Relatório...

- Grava um registo

&Ctrl; P Ficheiro Imprimir Relatório...

- Imprime uma cópia do registo.

&Ctrl; Q Ficheiro Sair

- Sai do &ksysv;.

#### O Menu Editar

&Ctrl; Z Editar Desfazer

- Anula a última alteração realizada.

&Ctrl; Shift Z Editar Refazer

- Repete a última acção anulada.

&Ctrl; X Editar Cortar

- Corta o serviço seleccionado no momento para a área de transferência.

&Ctrl; C Editar Copiar

- Copia o elemento seleccionado para a área de transferência, sem o remover da sua posição original.

&Ctrl; V Editar Colar

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

Editar Propriedades

- Abre a janela de propriedades do item seleccionado.

#### O Menu Ferramentas

Ferramentas Iniciar Serviço...

- Inicia o serviço seleccionado

Ferramentas Parar Serviço...

- Pára o serviço seleccionado

Ferramentas Reiniciar Serviço...

- Reinicia o serviço seleccionado.

Ferramentas Editar Serviço...

- Altera o serviço seleccionado

#### O menu Configuração

Configuração Mostrar Barra de Ferramentas

- Liga e desliga a visibilidade da barra de ferramentas.

Configuração Mostrar Barra de Estado

- Liga e desliga a visibilidade da barra de estado.

Configuração Mostrar Relatório

- Liga e desliga a visibilidade da janela do registo

Configuração Gravar a Configuração

- Grava a tua configuração actual.

Configuração Configurar Teclas...

- Personaliza a configuração do teclado na aplicação.

Configuração Configurar Barras de Ferramentas...

- Personaliza a barra de ferramentas.

Configuração 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 gravadas no `$`KDEHOME`/.kde/share/config/ksysvrc`. As pré-definições são obtidas a partir do ficheiro global (`$`KDEDIR`/share/config/ksysvrc`), se disponíveis, ou são geradas dentro do &ksysv;. As alterações às pré-definições são gravadas no teu `ksysvrc` local.

### Secções Reconhecidas

As secções reconhecidas e as suas chaves, para além dos seus valores por omissã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 subdirectories.

#### [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 a mexer com o 'runlevel' por omissão, e agora a minha máquina passa o tempo a reiniciar. O que devo fazer?

Escreve `linux single` na linha de comandos do LILO e carrega em Enter para arrancares em modo mono-utilizador. Edita o ficheiro `/etc/inittab` e altera o 'runlevel' por omissão para um valor seguro. O `3` resulta normalmente.

A minha máquina termina logo que inicia

Vê a pergunta 1 acima.

Escalonei alguns serviços para correrem no 'runlevel' X com o &ksysv;, por isso porque é que não estão a funcionar?

Se estás a usar distribuições como a da SuSE ou a Delix (DLD), também tens de alterar um ficheiro específico da distribuição na directoria `/etc`. Dá uma vista de olhos no manual da tua distribuição para mais detalhes.

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

Se estás a usar uma distribuição diferente, verifica se tens todos os ficheiros de configuração necessários pelo serviço, e se estão nos locais correctos. Alguns servidores como por exemplo o Apache (aka `httpd`) simplesmente terminam sem dizer nada se os seus ficheiros de configuração não existirem ou estiverem mal configurados.

## Semântica normalizada dos 'runlevels'

Estes variam de distribuição para distribuição, por isso esta é uma lista incompleta das distribuições comuns de &Linux;. Se tiveres distribuições adicionais, envia por email ao autor a informação adicional para que possa ser referida neste manual.

&RedHat;

- Runlevel 0:

- termina (desliga a máquina)

Runlevel 1:

- Modo mono-utilizador.

Runlevel 2:

- Multi-utilizador sem o NFS.

Runlevel 3:

- Multi-utilizador com o suporte de rede completo.

Runlevel 4:

- Não usado.

Runlevel 5:

- Multi-utilizador com o suporte de rede completo e o X11.

Runlevel 6:

- Reinicia

## Licença e Créditos

&ksysv; Copyright © 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 José Nuno Pires jncp@netcabo.pt

&underFDL; &underGPL;

## Instalação

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