Responder 
 
Avaliação do Tópico:
  • 0 Votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Problemas com o Init.d [Resolvido]
20/04/2011, 11:51 (Resposta editada pela última vez em: 13/05/2011 19:51 por kuruminbranco.)
Resposta: #1
Foto Problemas com o Init.d [Resolvido]
Olá.

Migrei do Debian 5 para o 6, mas quando vou por meus scripts de firewall no initi.d como de costume, recebo um alerta.

[email protected]:/etc/init.d# update-rc.d fw defaults
update-rc.d: using dependency based boot sequencing
insserv: warning: script 'K01ff' missing LSB tags and overrides
insserv: warning: script 'fw' missing LSB tags and overrides

gostaria de saber como resolver isso, e se o script precisar receber alguns parametros a mais, o script é um firewall somente com regras de iptables

#!/bin/bash

iptables ....

Kurumin Branco
http://www.kuruminbranco.com.br
Analista de Sistemas
Administrador de Redes Linux


[Imagem: debian.png]
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
25/04/2011, 21:57
Resposta: #2
RE: Init.d
é q mudou o sistema d boot do debian o squeeze usa o por dependencia
o script precisa d um cabeçalho agora

e vc usa o "insserv" no lugar de "update-rc.d"

http://wiki.debian.org/LSBInitScripts
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
27/04/2011, 10:13 (Resposta editada pela última vez em: 27/04/2011 10:14 por kuruminbranco.)
Resposta: #3
RE: Init.d
funakoshi , obrigado pela resposta.

Você já conseguiu com sucesso por um script no Init.d do squeeze?

Andei lendo como fazer o cabeçalho, mas na prática não consegui.

Se tiver um modelo e poder compartilha, ficaríamos grato Sorrisão

Kurumin Branco
http://www.kuruminbranco.com.br
Analista de Sistemas
Administrador de Redes Linux


[Imagem: debian.png]
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
27/04/2011, 14:18
Resposta: #4
RE: Init.d
olha você pode colocar em algum arquivo que iniciar junto com o sistema como em rc.local basta acrescentar uma linha no fim do arquivo indicando onde esta seu script geralmente tenho colocado no arquivo bootmisc.sh que fica dentro da pasta /etc/init.d e tem resolvido

Jvianez
Todo Cristão é Livre use Linux e não seja Pirata.
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
27/04/2011, 15:33
Resposta: #5
RE: Init.d
Boa tarde,

Utilizo o squeeze e não tenho problemas em colocar scripts no init.d.

Geralmente faço assim:
Código:
#!/bin/bash

start(){
echo "iniciando serviço..."
}

stop(){
echo "parando serviço..."
}

restart(){
echo "reiniciando serviço..."
}

case $1 in
start) start ;;
stop) stop ;;
restart) restart ;;
*) echo "Use: start|stop|restart."
     exit 1
esac

Até mais...

A melhor forma de aprendizado e aquela em que um grupo de pessoas, tentam ajudar umas as outras.
________________
Marcelo R. Silva
http://mrs-linux.blogspot.com
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
28/04/2011, 20:57
Resposta: #6
RE: Init.d
Isso é somente um aviso que o sistema está utilizando um padrão nos scripts de inicialização, ele deve funcionar normalmente.
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
29/04/2011, 23:07
Resposta: #7
Init.d
Eu creio que funcione, mas tentei remover a entrada utilizando pacotes que tem a função de facilitar a vida, e não remove essa entrada.

Sem falar que ele fica jogando um alerta na tela no intervalo de mais ou menos 5 minutos.

Bem, eu preciso por esse script no init.d, no rc.local teoricamente não me serve.

Tenho a curiosidade de saber o porque não deu certo, por isso a insistência de descobrir o meu erro Sorrisão


Me falaram também sobre a ausência de um pacote chamado lsb-base, ainda não deu pra por a mão na massa, mas assim que der eu posto o resultado.

Kurumin Branco
http://www.kuruminbranco.com.br
Analista de Sistemas
Administrador de Redes Linux


[Imagem: debian.png]
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
30/04/2011, 21:38
Resposta: #8
RE: Init.d
Então, a chegou a ler sobre o que o funakoshi postou? Isso pode ajudar na solução.
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
03/05/2011, 23:40
Resposta: #9
Sorrisão RE: Init.d
Sim, tentei usar isso, o servidor está delsigado por que no local onde ele foi montado o link ainda não está ativo, mas essa semana mesmo vou mecher nele outra vez, dai posto aqui as dúvidas ou soluções que encontrar

Kurumin Branco
http://www.kuruminbranco.com.br
Analista de Sistemas
Administrador de Redes Linux


[Imagem: debian.png]
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
13/05/2011, 14:02
Resposta: #10
RE: Init.d
Olá pessoal, eu fiquei com algumas dúvidas, se os colegas poderem explicar, ficarei grato mais uma vez.

Seguinte, as regras de firewall vai dentro do START, as que limpa o FIREWALL iram dentro do STOP.

Como eu faço pra chamar o START e STOP dentro o RESTART.

veja abaixo como ta o exemplo

#!/bin/bash

start(){
echo "iniciando serviço..."

iptables -A INPUT -i eth2 -p tcp --dport 22 -j DROP

}

stop(){
echo "parando serviço..."

iptables -F
iptables -t nat -F

}

restart(){
echo "reiniciando serviço..."

}


case $1 in
start) start ;;
stop) stop ;;
restart) restart ;;
*) echo "Use: start|stop|restart."
exit 1
esac

Kurumin Branco
http://www.kuruminbranco.com.br
Analista de Sistemas
Administrador de Redes Linux


[Imagem: debian.png]
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
13/05/2011, 14:25
Resposta: #11
RE: Init.d
Boa tarde,

Para você chamar o start e o stop dentro do restart, bastaria deixar o script desta forma:
Código:
....
restart(){
echo "reiniciando serviço..."
stop
start
}

Até mais...

A melhor forma de aprendizado e aquela em que um grupo de pessoas, tentam ajudar umas as outras.
________________
Marcelo R. Silva
http://mrs-linux.blogspot.com
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
13/05/2011, 19:16
Resposta: #12
RE: Init.d
Boa noite,

Para você fazer com que o script seja instalado no /etc/init.d/ nesta nova versão e o mesmo seja executado na inicialização, sem precisar adicionar os cabeçalhos, basta fazer:
Código:
insserv -d -f /etc/init.d/script

Ele vai dar mensagens de warnings, mas irá funcionar sem problemas.

Até mais...

A melhor forma de aprendizado e aquela em que um grupo de pessoas, tentam ajudar umas as outras.
________________
Marcelo R. Silva
http://mrs-linux.blogspot.com
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
13/05/2011, 19:50 (Resposta editada pela última vez em: 13/05/2011 19:56 por kuruminbranco.)
Resposta: #13
Init.d
Encontrei a solução, uma hora o outra o método antigo não vai funcionar, então vamos prevenir.

No Debian 6.0 todos os scripts de inicialização "/etc/init.d/" foram convertidos para ordenar a sequencia de boot baseado em um padrão especificado na Base Standard de Linux (LSB). Com o aderimento a esse padrão agora existe um cabeçalho em todos os scripts de inicialização onde são indicadas as dependências que ele necessita para poder ser executa, fazendo com que o script inicie só depois de tais dependências.

Esta funcionalidade é ativada pelo insserv que ordena os scripts init.d baseando-se nas suas dependências declaradas nos cabeçalhos.

Ou seja, para adicionar/remover serviços da inicialização no Debian 6.0 não se usa mais o "update-rc.d" e sim o "insserv"!

Vamos pegar um arquivo existente e observa.

[email protected]:~# insserv -rv cron
insserv: remove service /etc/init.d/../rc2.d/S03cron
insserv: remove service /etc/init.d/../rc3.d/S03cron
insserv: remove service /etc/init.d/../rc4.d/S03cron
insserv: remove service /etc/init.d/../rc5.d/S03cron
insserv: creating .depend.boot
insserv: creating .depend.start
insserv: creating .depend.stop

Adicionando o cron na inicialização do sistema:

[email protected]:~# insserv -dv cron
insserv: enable service ../init.d/cron -> /etc/init.d/../rc2.d/S03cron
insserv: enable service ../init.d/cron -> /etc/init.d/../rc3.d/S03cron
insserv: enable service ../init.d/cron -> /etc/init.d/../rc4.d/S03cron
insserv: enable service ../init.d/cron -> /etc/init.d/../rc5.d/S03cron
insserv: creating .depend.boot
insserv: creating .depend.start
insserv: creating .depend.stop

Beleza! Mas onde são definidos em quais runlevels ele será inicializado por padrão? O insserv se baseia no cabeçalho declarado dentro do /etc/ini.t/cron, veja:

[email protected]:~# cat /etc/init.d/cron
#!/bin/sh
# Start/stop the cron daemon.
#
### BEGIN INIT INFO
# Provides: cron
# Required-Start: $remote_fs $syslog $time
# Required-Stop: $remote_fs $syslog $time
# Should-Start: $named slapd autofs ypbind nscd nslcd
# Should-Stop: $named slapd autofs ypbind nscd nslcd
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Regular background program processing daemon
# Description: cron is a standard UNIX program that runs user-specified
# programs at periodic scheduled times. vixie cron adds a
# number of features to the basic UNIX cron, including better
# security and more powerful configuration options.
### END INIT INFO

No campo "Default-Start:" é passado em quais runlevels ele será iniciado por padrão.

Legal! E de onde o insserv tira a prioridade de rodar os scripts, exemplo do cron ("/etc/init.d/../rc2.d/S03cron") iniciando com prioridade 03? Aí que está a grande novidade, você não ira mais editar essa prioridade na mão, o insserv vai calcular a prioridade de acordo com o tal cabeçalho verificando quais os scripts devem ser iniciados antes para que o script seja executado. Exemplo:

[email protected]:~# cat /etc/init.d/cron
#!/bin/sh
# Start/stop the cron daemon.
#
### BEGIN INIT INFO
# Provides: cron
# Required-Start: $remote_fs $syslog $time
# Required-Stop: $remote_fs $syslog $time
# Should-Start: $named slapd autofs ypbind nscd nslcd
# Should-Stop: $named slapd autofs ypbind nscd nslcd
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Regular background program processing daemon
# Description: cron is a standard UNIX program that runs user-specified
# programs at periodic scheduled times. vixie cron adds a
# number of features to the basic UNIX cron, including better
# security and more powerful configuration options.
### END INIT INFO

No campo "Should-Start:" são definidos os scripts que deverão ser iniciados antes do script em questão, no caso o cron. De acordo com o cabeçalho dele, ele ira rodar só depois que "$named slapd autofs ypbind nscd nslcd" rodarem. Então é por isso que o insserv deu a prioridade 03.

O cabeçalho tem que existe, embora não seja passado os parâmetros, o meu ficou assim

#!/bin/sh
# Start/stop the firewall daemon.
#
### BEGIN INIT INFO
# Provides: firewall
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Script do Firewall
# Description: firewall script
### END INIT INFO

echo "Funcionando .... Sorrisão"

Em seguida eu fui dentro do /etc/init.d/ e passei o paramento.

insserv -dv firewall
-v, --verbose
Write out what is currently going on.

-r, --remove
Remove the listed scripts from all runlevels.

-d, --default
Use default runlevels as defined in the scripts. This may restore an edited runlevel link scheme.


Inseriu correto, como eu não tenho conhecimento suficiente sobre "Required-Start, Required-Stop, Should-Start, Should-Stop", eu omiti os valores.

Para você entender melhor outros parâmetros, como $remote_fs $syslog $time, que são passados nesses campos, de uma conferida no wiki oficial do Debian: http://wiki.debian.org/LSBInitScripts

Para conferir oficialmente as mudanças registradas segue os links:

http://wiki.debian.org/LSBInitScripts/De...yBasedBoot

http://www.debian.org/releases/stable/i3...dency-boot

Kurumin Branco
http://www.kuruminbranco.com.br
Analista de Sistemas
Administrador de Redes Linux


[Imagem: debian.png]
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
Responder 


Ir ao Fórum:


Usuários visualizando este tópico: 1 Visitantes

Entre em Contato | Fórum Debian | Voltar ao Topo | Voltar ao Conteúdo | Modo Leve (Arquivo) | Feeds RSS