# Manual do KSysV

Peter
Putzer

    putzer@kde.org

18/11/1998
0.03.22

Este manual descreve o Editor de Iniciação de Sistemas V, KSysV versão 0.3.22

KDE
KSysV
System administration
Runlevels

## Introdução

Bem-vindo ao meu editor de níveis de execução System V, comumente conhecido e referenciado doravante como KSysV. Esta seção introduz alguns conceitos e explica o que você pode fazer com o KSysV.

A explanação a seguir foi tomada emprestada do `tksysv`, que inspirou o KSysV:

### Uma breve descrição da Iniciação do Sistema V

O estilo de iniciação do Sistema V está tornando-se rapidamente o padrão no mundo Linux, como modelo de controle da partida da máquina. Isso porque é mais fácil de usar, poderoso e flexível que a iniciação BSD tradicional.

Não vou contar a história toda aqui (até porque eu não sei :-).

O programa executável `init` está localizado no diretório `/sbin` e não no `/etc`. Isso é importante, pois permite atualizar uma máquina de modo que inicie no estilo System V, sem precisar reinstalar todo o sistema, e sem formatar nada. O kernel do Linux procura pelo `init` no diretório `/etc` em primeiro lugar, portanto certifique-se de que você removeu seu `init` velho de lá, se ainda havia um.

A iniciação SysV também difere da iniciação BSD na medida em que seus arquivos de configuração estão num subdiretório de `/etc`, ao invés de residirem diretamente em `/etc`. Este diretório é chamado `rc.d`. Lá você encontrará o arquivo `rc.sysinit` e os seguintes subdiretórios:

    init.d/
    rc0.d/
    rc1.d/
    rc2.d/
    rc3.d/
    rc4.d/
    rc5.d/
    rc6.d/

`init.d` contém uma coleção de scripts. Basicamente, você precisa um script para cada serviço que você possa precisar iniciar na partida da máquina, ou ao entrar em outro nível de execução. Os serviços incluem coisas como serviços de rede, NFS, sendmail, http etc. Não incluem coisas como `setserial` que devem ser executados somente uma vez. Esse tipo de programa deve constar no arquivo `rc.local`.

`rc.local` deve estar no diretório `/etc/rc.d` se você tiver um. A maioria dos sistemas possuem esse arquivo mesmo que ele não faça muita coisa. Você também pode incluir um arquivo `rc.serial` no diretório `/etc/rc.d`, se você precisa executar quaisquer procedimentos de configuração das portas seriais na partida da máquina.

A cadeia de eventos ocorre assim:

- o kernel procura pelo `init` em diversos lugares e executa o primeiro que encontrar;

- o `init` executa o script `/etc/rc.d/rc.sysinit`

- `rc.sysinit` executa algumas tarefas necessárias e então executa o script `rc.serial`, se ele existir;

- `init` executa o script `rc.local`;

- `init` executa todos os scripts do nível de execução padrão.

O nível de execução padrão é decidido em `/etc/inittab`. Você deve ter uma linha próxima ao início do arquivo, parecida com esta:

    id:3:initdefault:

Aqui você olha para o segundo parâmetro e vê que o nível de execução padrão é 3, que deve ser o caso de muitos sistemas. Se você quer mudá-lo, você pode editar o arquivo `/etc/inittab` manualmente e mudar o número 3. Tenha cuidado ao fazer isso.

Se você bagunçar esse arquivo, poderá ter uma chance de consertá-lo, logo ao início da partida da máquina, perfazendo os seguintes passos:

    LILO boot: linux single

Isto *deve* permitir a você entrar em modo monousuário, de modo que você possa pelo menos editar e consertar o arquivo.

Agora, como é que ele executa todos os scripts ? Se você executar o comando '`ls -l`' no diretório `/etc/rc.d/rc3.d`, verá algo como

    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ê vai notar é que não há arquivos reais no diretório. Todos eles são links para scripts que estão de fato no diretório init.d. Os links também tem um "S" e um número no começo do nome. A letra "S" significa que o serviço correspondente deve ser iniciado, enquanto um "K" significaria que ele deve ser parado. O número serve apenas para estabelecer uma ordem de execução entre os scripts. O `init` iniciará todos os serviços baseado na ordem em que eles aparecem. Você pode duplicar números, mas isso apenas deixaria você confuso. Você precisa apenas de um número de dois dígitos, e uma letra maiúscula "S" ou "K" para iniciar e parar os serviços.

Como ele inicia e pára os serviços ? Simples. Cada um dos scripts é escrito de modo a aceitar um argumento que pode ser "start" ou "stop". Você pode executar esses scripts manualmente via linha de comando:

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

para parar o servidor httpd. O Init lê o nome, e se ele tem um "K", chama o script com o argumento "stop". Se ele tem um "S", chama o script com o argumento "start".

#### Por que tantos níveis de execução ?

Algumas pessoas precisam de uma forma fácil de configurar máquinas para múltiplos propósitos. Eu poderia ter um nível de execução "servidor" que executa somente httpd, sendmail, serviços de rede etc. Então eu posso ter outro nível de execução, "usuário", que rode xdm, serviços de rede etc.

## Fundamentos de Uso

Aqui você aprenderá como usar o KSysV, o que não deve ser difícil já que ele foi projetado de modo a ser o mais amigável possível.

### Mouse

Usar o KSysV com um mouse ou outro dispositivo apontador é fácil, para não dizer trivial: basta arrastar um item da área de "Scripts" para um dos seis níveis de execução para iniciá-lo (ou reiniciá-lo, ou pará-lo) naquele nível de execução.

Você também pode mover scripts entre níveis de execução, ou mudar a ordem em determinado nível, via arrasto. Isso remove o item de seu nível de execução original (ou da posição original, depende o caso). Isso não acontece quando você arrasta um item da área de "Scripts". Os itens dos níveis de execução arrastados para lugares diferentes serão removidos de seu lugar original ainda que o item já exista na área-alvo.

### Teclado

Ainda não redigido.

### Os itens do Menu

Ainda não redigido.

## Configuração

Ainda não redigido.

## Apêndice

Ainda não redigido.

### Perguntas e Respostas

Ainda não redigido.

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

Ainda não redigido.

### Licença

Consulte a licença GNU que você deve ter recebido junto com o pacote kdeadmin do KDE.

## Créditos

KSysV Copyright (c) 1997,98 Peter Putzer

### Desenvolvedores

- Peter Putzer, `putzer@kde.org` - Desenvolvedor

### Autores

- Peter Putzer, `putzer@kde.org` - Redator

- Eric Bischoff, `ebisch@cybercable.tm.fr` - Editor

- Elvis Pfützenreuter, `epx@netville.com.br` - Tradução para Português do Brasil