De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Níveis de Execução
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 27 de Janeiro de 2006
Sistemas Linux podem funcionar em vários níveis distintos de execução.
Cada nível é caracterizado pelo conjunto de processos permanentes e
funções oferecidas. Sistemas Red Hat Linux e derivados, utilizam seis
níveis de execução, ou runlevels, como são mais conhecidos. Esta
concepção tem suas origens no sistema Unix desenvolvido na AT&T
(System V Unix).
Os níveis de inicialização são controlados pelos scripts que se
encontram no diretório /etc/rc.d/init.d
. Uma listagem deste diretório
revela os seguintes arquivos:
atd gpm keytable mars-nwe nfslock rstatd single sshd
crond halt killall named portmap rusersd smb syslog
dhcpd httpd linuxconf netfs postgresql rwhod snmpd xfs
functions inet lpd network random sendmail squid ypbind
Uma rápida inspeção nos revela vários serviços conhecidos como
sendmail, httpd e named.
Cada nível de execução é controlado através de links simbólicos
existentes nos seis diretórios (/etc/rc.d/rc1.d
até /etc/rc.d/rc6.d
).
Examinemos o conteúdo do diretório /etc/rc1.d
:
# ls -l
lrwxrwxrwx 1 root root 19 Mar 22 21:02 K00linuxconf -> ../init.d/linuxconf
lrwxrwxrwx 1 root root 18 Mar 22 20:54 K05keytable -> ../init.d/keytable
lrwxrwxrwx 1 root root 13 Mar 22 20:59 K10xfs -> ../init.d/xfs
lrwxrwxrwx 1 root root 13 Mar 22 20:58 K15gpm -> ../init.d/gpm
lrwxrwxrwx 1 root root 15 Mar 22 20:53 K15httpd -> ../init.d/httpd
lrwxrwxrwx 1 root root 18 Mar 22 21:05 K30sendmail -> ../init.d/sendmail
lrwxrwxrwx 1 root root 14 Mar 22 21:03 K50inet -> ../init.d/inet
lrwxrwxrwx 1 root root 13 Mar 22 20:53 K60atd -> ../init.d/atd
lrwxrwxrwx 1 root root 15 Mar 22 21:06 K60crond -> ../init.d/crond
lrwxrwxrwx 1 root root 13 Mar 22 21:02 K60lpd -> ../init.d/lpd
lrwxrwxrwx 1 root root 15 Mar 22 20:59 K75netfs -> ../init.d/netfs
lrwxrwxrwx 1 root root 17 Mar 22 21:05 K89portmap -> ../init.d/portmap
lrwxrwxrwx 1 root root 17 Mar 22 20:59 K90network -> ../init.d/network
lrwxrwxrwx 1 root root 16 Mar 22 21:06 K99syslog -> ../init.d/syslog
lrwxrwxrwx 1 root root 16 Mar 22 20:59 S00single -> ../init.d/single
Como se pode ver, todo o conteúdo do diretório /etc/rc1.d
consiste de
links simbólicos apontando para scripts dentro do diretório
/etc/rc.d/init.d
. A primeira letra dos nomes dos links simbólicos pode
ser ou "S" ou "K", indicando se o processo para o qual aponta deve ser
ativado (Started) ou desativado (Killed). O número que se segue a esta
letra indica a ordem em que os processos devem ser encerrados ou
ativados. Em nosso exemplo o primeiro processo a ser desativado é o
linuxconf. O primeiro a ser ativado, após terem sido encerrados todos
os demais processos, é o script single. Cada um dos scripts residentes
no diretório /etc/rc.d/init.d
aceita geralmente três parâmetros:
start, stop, restart. Estes parâmetros indicam, respectivamente, a
ativação, desativação e desativação seguida de ativação do processo.
Para determinar o nível de execução em que seu sistema está
funcionando, utilize o comando /sbin/runlevel. Este comando irá
consultar o arquivo /var/run/utmp para determinar o estado atual e o
anterior. Caso o estado anterior não possa ser determinado é exibida a
letra "N" em seu lugar:
# /sbin/runlevel
N 3
1. Descrição dos Níveis de Execução
A seguir listamos os estados possíveis de um sistema Linux e sua
descrição:
1.1. Nível 0
Neste nível o sistema está parado
1.2. Nível 1
Sistemas funcionando no nível 1 estão em modo monousuário, com um
conjunto mínimo de processos ativos. O sistema de arquivos raiz
(root) está montado em modo de leitura. Este nível de execução é
normalmente utilizado quando a inicialização normal falha por
alguma razão.
1.3. Nível 2
A maior parte dos serviços estão ativos, com exceção dos processos
de rede (como nfs, nis, named e httpd).
1.4. Nível 3
Este é o nível normal de operação, com todos os processos ativos.
1.5. Nível 4
Este nível não é utilizado na maior parte das distribuições
1.6. Nível 5
Semelhante ao nível 3, com todos os processo ativos, porém com uma
interface gráfica de logon
1.7. Nível 6
É executado neste nível um reboot do sistema.
2. Alteração dos Níveis de Execução
Os níveis de execução podem ser mudados pelo superusuário com o
sistema em funcionamento. Sempre que é alterado um nível de execução
são comparados, nos dois níveis, os processos que devem ser ativados e
quais devem ser desativados. O processo init, que é processo pai de
todos os demais (PID 1), compara a lista dos processos que devem ser
encerrados no diretório indicativo do nível de execução atual com a
lista dos processos que devem ser ativados no nível de execução de
destino. De posse desta informação o processo init determinará quais
processos devem ser ativados ou desativados.
Para reiniciar o sistema basta executar o comando
init 6
Veja a lista dos links em /etc/rc.d/rc6.d:
K00linuxconf
K05keytable
K10xfs
K15gpm
K15httpd
K30sendmail
K50inet
K60atd
K60crond
K60lpd
K75netfs
K80random
K89portmap
K90killall
K90network
K99syslog
S00reboot
Como se pode ver, a maioria dos links inicia-se com a letra "K",
indicando que os processos serão desativados. Apenas um link inicia-se
por "S", S00reboot, que aponta para o script /etc/init.d/halt.
Similarmente, para colocar o sistema em modo monousuário
init 1
3. Nível de Execução Padrão
O nível em que o sistema irá funcionar é indicado pela entrada
id:3:initdefault:
do arquivo /etc/inittab
. Neste sistema o nível padrão de execução é 3.
Para alterar este nível de execução basta alterar o número "3" para o
valor desejado. Nunca altere este valor para "0" ou "6", que indicam,
respectivamente, o sistema parado ou em modo de encerramento.
4. Definição ou Remoção de Processos Residentes
Para desativar um serviço de um determinado nível de execução basta
remover o link simbólico do diretório apropriado. Por exemplo, para
desativar o serviço httpd, do nível de execução 3, basta remover o
link /etc/rc.d/rc3.d/S85httpd
do diretório /etc/rc.d/rc3.d
.
Similarmente, para inserir um novo serviço, basta criar um link no
diretório padrão de execução, apontando para o script correspondente
em /etc/rc.d/init.d
:
# cd /etc/rc.d/rc3.d
# ln -s /etc/rc.d/init.d S99local
Este script realmente existe e é normalmente utilizado para inserir os
serviços locais. Pela numeração (99), este script sempre será o último
a ser ativado.
Importante, certifique-se de escolher uma numeração que posicione a
ativação do script na ordem correta. Se o serviço é dependente do
funcionamento da rede ele deve necessariamente ser ativado após estes
serviços estarem ativos.
5. Utilitários para Configuração dos Níveis de Execução
Até agora abordamos a configuração manual dos scripts de
inicialização. Existem entretanto diversos utilitários para realizar
este este trabalho.
chkconfig Utilitário para configuração dos níveis de execução
invocado a partir da linha de comandos
ksysv Utilitário gráfico que permite a configuração dos níveis de
execução e ativação e desativação de processos individuais
linuxconf Ferramenta genérica de configuração que permite o
gerenciamento dos níveis de execução
A forma mais segura de se lidar com esta configuração certamente
começa com o entendimento perfeito de seu funcionamento. As interfaces
gráficas podem obscurecer o significado real do que se está fazendo e
conduzir a uma configuração indesejável. Em qualquer situação,
realizando-se o trabalho manualmente ou através de utilitários,
recomendamos o backup de todos os arquivos envolvidos para poder
retornar à uma situação estável em caso de problemas.
Para lidar com a ativação e desativação de processos residentes, algo
que frequentemente precisamos fazer sempre que alteramos a
configuração de um serviço, precisamos realizar os seguintes passos:
# cd /etc/rc.d/init.d
# httpd restart
Em nosso exemplo nos dirigimos ao diretório onde ficam todos os
scripts de ativação de processos e invocamos o script httpd com o
parâmetro "restart".
Um artifício engenhoso para realizar esta tarefa nos é fornecido,
através de um alias, em sistemas Conectiva Linux. Este alias,
disponível no ambiente do usuário root, chama-se cds:
alias cds='cd /etc/rc.d/init.d && ls'
Como podemos ver, o alias realiza dois passos: a mudança para o
diretório /etc/rc.d/init.d
e a listagem de seu conteúdo. Desta forma
podemos visualizar o nome de todos os scripts disponíveis, facilitando
a invocação do script apropriado. Simples, mas extremamente útil.
6. Referências Adicionais
No transcorrer deste artigo foram feitas referências aos comandos ln,
init, chkconfig, inittab e runlevel. A leitura da documentação destes
comandos fornece informações valiosas sobre todo o processo descrito e
pode ser acessada a partir do comando man (man ln, man init, etc).
Digital Music Sales Booming
Fonte: Wired Magazine
Associated Press
Worldwide sales of music over the internet and on mobile phones hit $1.1
billion last year, triple 2004 sales and accounting for 6 percent of global
record company revenues, the industry said.
The London-based International Federation of the Phonographic Industry, or
IFPI, said music fans around the globe downloaded 420 million single tracks
in 2005, more than double the 156 million downloaded the previous year.
"2005 was the year that the digital music market took shape," said IFPI
chairman John Kennedy.
The IFPI also called on ISPs to join the fight against music piracy, which
it claims severely erodes the profits of its 1,450 member record companies
across the globe.
The IFPI added that the legitimate music business was gradually gaining
ground on digital piracy. It said research showed that in Europe's two
biggest digital markets - Britain and Germany - more music fans are now
legally downloading music than illegally file-swapping.
A series of lawsuits against piracy by the IFPI has so far largely targeted
individual song swappers for breach of copyright rather than ISPs, which can
claim that they have no knowledge of any piracy occurring on their networks.
Kennedy, who said he approached prominent ISPs a year ago about a coordinated
response and has received "effectively a zero response," put them on notice
Thursday that the IFPI would consider litigation if they did not join the
fight against piracy.