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.
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
A seguir listamos os estados possíveis de um sistema Linux e sua descrição:
Neste nível o sistema está parado
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.
A maior parte dos serviços estão ativos, com exceção dos processos de rede (como nfs, nis, named e httpd).
Este é o nível normal de operação, com todos os processos ativos.
Este nível não é utilizado na maior parte das distribuições
Semelhante ao nível 3, com todos os processo ativos, porém com uma interface gráfica de logon
É executado neste nível um reboot do sistema.
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
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.
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.
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.
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).
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.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários