Linux slogan
Visite também: BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Colocando script na inicialização do Linux (Ubuntu/Debian)
Linux user
Publicado por Phylipe Venancio Soares em 14/12/2006

Login: phylipe, 786333 pontos | Blog: http://www.titan.inf.br
[ Hits: 124659 ]

Colocando script na inicialização do Linux (Ubuntu/Debian)

Essa dica é para quem não sabe como colocar um script na inicialização do sistema. Como se sabe, em distros como o Slackware basta você colocar seu script ou chamá-lo através do /etc/rc.d/rc.local.

Porém o Ubuntu e Debian não tem esse arquivo, então como fazer??? Muito simples. Basta você criar seu script dentro da pasta /etc/init.d. Exemplo:

# joe /etc/init.d/meuscript

#!/bin/bash

echo "Olá mundo"

Agora é só dar a permissão para execução:

# chmod 755 /etc/init.d/meuscript

Quase pronto, agora é só colocar para inicializar junto com o sistema:

# update-rc.d meuscript defaults

É isso aí galera, felicidade a todos!


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Prevenindo Adwaita Black
   Dica Linux recomendada Touchpad Synaptics - tap-click não funciona (Slackware 13)
   Dica Linux recomendada Repositórios oficiais Debian
   Dica Linux recomendada Baixar e Instalar o pacote printconf usando o Synaptic no Debian 5.07
   Dica Linux recomendada Colocando sua cidade no weather do adesklets

Comentários
[1] Comentário enviado por jwendell em 14/12/2006 - 17:28h:

Cara, não fala isso. Existe o /etc/rc.local


[2] Comentário enviado por phylipe em 14/12/2006 - 17:57h:

Mas isso eh para fazer uma coisa mais elaborada... tipo fazer um firewall, que vc pode criar um /etc/init.d/firewall.... eh bem mais legal.


[3] Comentário enviado por jwendell em 14/12/2006 - 18:07h:

Claro, concordo. Estou falando do fato de você dizer que no Ubuntu não existe um arquivo rc.local como no slack.


[4] Comentário enviado por hccelo em 15/12/2006 - 10:58h:

nas baseadas em debian existe o arquivo /etc/init.d/bootmisc.ALGUMA_COISA_q_NAO_LEMBRO, acho q é bootmisc.sh...

funciona como o rc.local...


flw!


[5] Comentário enviado por jamerfay em 04/05/2007 - 10:20h:

Pode até ter. só que, fui adicionar alguns scripts no /etc/init.d/rc.local
e toda hora que eu reiniciava o ubuntu server.
os scripts ñ funcionavam
tinha que rodar todos manualmente, daí graças a este post, consegui fazer com que eles funcionem normalmente. (Detalhe no ubuntu desktop sempre funcionou)
só no no server não deu!! Vai saber né...
Abraços!!!


[6] Comentário enviado por aureaa em 15/08/2007 - 16:30h:

Bem... no meu caso funcionou a dica do Phylipe. Eu tava tendo que rodar manualmente e o rc.local não trazia comentário algum. Mesmo assim coloquei a regra dentro dele e nada. Depois coloquei o caminho do script e nada. Enfim... Valeu pela dica. Preciso de dicas de política. Alguém pode me dar? Sou iniciante ainda.


[7] Comentário enviado por ebertonraider em 23/08/2007 - 21:33h:

como que eu faço para colocar esses comandos no script do ubuntu:
sudo ifconfig eth1 192.168.0.1
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


[8] Comentário enviado por phylipe em 25/09/2007 - 21:08h:

gdit /etc/rc.local

Coloca as linhas dentro desse arquivo depois salve

Vlw


[9] Comentário enviado por bytecodesbr em 04/12/2007 - 10:51h:

Basta editar o arquivo: /etc/rc.local, colocando:

# Não esquecer de colocar no final da linha o &
/etc/jakarta-tomcat-5.0.28/bin/startup.sh &
exit 0


[10] Comentário enviado por rjdiniz em 25/07/2008 - 21:18h:

Phylipe Venancio Soares; Valeu d+ amigo!


[11] Comentário enviado por faroots_gnu em 09/08/2008 - 15:42h:

Vamo lá!! to com um problema no DEBIAN, configurei servidor (compartilhei conexao via IPtable) tenho DHCP, Squid, SSH, nxserver... estao funcionando perfeitamente, mas só funcionam quando eu digito os comandos no shell, ja coloquei os comandos no rc.local e tambem criei um script dessa mesma forma como esta descrito aqui, mas os serviços não inicializam com o sistema operacional, estou ficando doido pra fazer funcionar, (toda vez que reinicio tenho que fazer isso manualmente) alguem me ajuda?? obrigadoo!!


[12] Comentário enviado por felipezs em 11/09/2008 - 10:59h:

como é feita a execução dos scripts?
por ordem alfebética?Pois eu criei um sript para desabilitar o cups e o proftpd q por enquanto nao vou usar.
Abraços


[13] Comentário enviado por wash em 12/06/2010 - 10:47h:

no ubuntu, muito mais facil acessar os scripts de inicializacao fazendo:

sudo apt-get install rcconf


[14] Comentário enviado por felipe.antonio em 09/09/2010 - 10:16h:

Outra coisa que pode acontecer é o seguinte:

Se tiver alguma chamada de script errada ou algum comando errado no seu /etc/rc.local ele não vai funcionar. Por exemplo:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Sobe o script do firewall
nohup /etc/link/nfirewall

iptables -t nat -A POSTROUTING -o eth0 "-J" MASQUERADE

# Sobe o script para implementar tolerancia a falhas.
nohup /etc/link/gwping

exit 0

O segundo comando está escrito errado o que vai acarretar erro no código, logo o segundo e o terceiro comando não serão executados. Para prevenir isto basta adicionar & no final de cada chamada de script, que faz o seu script rodar em background.


[15] Comentário enviado por dedimosantos em 19/10/2010 - 08:35h:

Parabenizo o autor do artigo, pois este foi escrito de forma simples e bem inteligível, ajudou-me muito.
Obrigado!!!


[16] Comentário enviado por kinokrek em 27/10/2010 - 16:32h:

Artigo útil e funcional, só seria melhor se houvesse outros capítulos explicando melhor a inicialização do sistema. Mas qualquer um com boa vontade e paciência (pouca) pode encontrar mais sobre isso.

### Acrescentando informações ###

Uso a distribuição Sabayon, baseada em Gentoo. A estrutura de boot parece ser parecida com a do Ubuntu (não sou muito experiente para afirmar isso).
O meu único problema foi com o último comando do artigo (# update-rc.d meuscript defaults ).
Seguindo a documentação do Gentoo, na qual vale a pena dar uma lida pois detalha o processo de inicialização ( http://www.gentoo.org/doc/pt_br/handbook/handbook-x86.xml?part=2&chap=4 ), descobri que o comando é outro:

# sudo rc-update add nomedoscript default

Esse comando é essencial, pois, como é dito na documentação, o init não executa todos scripts contidos em /etc/init.d. O que tal comando faz a adicionar o script desejado à lista de execução. Esta pode ser listada com o comando:

#sudo rc-update show

Só para enriquecer um pouco, uma observação que pode ser muito útil a alguns é que o tal "default" do comando é um runlevel, ou "estágio de execução", que pode ser tanto substituído quanto adicionado a outros: boot, default, nonetwork, single e shutdown. Cada um destes tem sua especificidade, que é detalhada no link citado. Por exemplo, "default" é indicado para operações rotineiras. Se quiséssemos que o script fosse executado ao encerramento do sistema, o comando seria:

# sudo rc-update add nomedoscript shutdown


Este comentário foi só para adicionar informações específicas a usuários iniciantes do Gentoo, como eu. Fica também a importante dica: documentação é (quase) tudo e é a melhor fonte de informação que se pode ter.


[17] Comentário enviado por GuilhermeLista em 09/12/2012 - 13:19h:

Esse é um breve script para configuração de iptables no firewall:

iniciar(){
#ativar a conexao
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -j MASQUERADE
echo "conexao ativada"

#comandos iptables...
}

parar(){
#comandos iptables que deixam o estado padra limpando as pólices, etc...
echo "0" > /proc/sys/net/ipv4/ip_forward
echo "conexao desativada"
}
case "$1" in
start) iniciar ;;
stop) parar ;;
restart) parar; iniciar ;;
*) echo "use os parametros start ou stop"
esac
exit 0

-------------------------------------------------------------------------------------
Depois crie esse arquivo no diretório:# /etc/init.d/cofiguracao_firewall
Dê permissao de execução:# chmod +x /etc/init.d/configuracao_firewall

A partir de agora vc terá que descobrir em qual nível a sua distribuição irá executar o script no meu caso ubuntu-server o meu nível é o "rc2.d "
Acesse o diretorio:# cd /etc/rc2.d/
Lá terá links os quais irão executar seus respectivos scripts ex:S15bind9,S50rsync...
Crie o seu link:# ln -s ../init.d/configuracao_firewall S21configuracao_firewall
A letra "S" indica que irá executar o camando start do seu script e numero 21 será a ordem o qual seu script será executado

Após isso é só dar um reboot e curtir seu script ^^.
Algumas referências eu retirei do livro: "Servidores Linux" de Calos Morimoto.
Att.




Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.