Qual é a maneira correta de fazer um script de inicialização no Linux (Fedora Unbuntu) env?

0

Eu sou novo no LInux

Eu quero fazer algum script de inicialização na minha máquina Ubuntu. o script de inicialização inicia meu ftp, servidor http automaticamente.

Como posso fazer isso de maneira adequada?

Obrigado

Kit

    
por Kit Ho 21.03.2012 / 08:22

1 resposta

2

A maioria dos servidores, se instalados com o synaptic / apt-get no Ubuntu, e eu acho que existe um equivalente no Fedora (rpm?), irá instalar os scripts de inicialização automaticamente.

Eles geralmente terminam em um diretório /etc/init.d .

Existe o conceito de runlevels que define, quando iniciar e parar daemons. Estes são freqüentemente encontrados em /etc/rcX.d/ onde X é um inteiro de 0 a 6 mais 'S', o que significa que, no nível de execução X, executam os arquivos [SK] {00..99} NAME na ordem da numeração (00 a 99), onde o prefixo S significa iniciar e K significa matar.

Esses arquivos /etc/rc2.d/S20powernowd , por exemplo, são apenas links simbólicos para os arquivos reais em /etc/init.d , que, por reflexão, avaliem se foram iniciados com S ou K na frente , para chamar a seção de início ou parada do script.

A numeração é importante, pois muitos serviços dependem de outros serviços. O sistema de arquivos tem que ser montado em um estágio inicial, muitos programas precisam que a rede esteja em funcionamento, um daemon de logging sendo iniciado e assim por diante.

Você vê, é um pouco complicado, e nada que você gosta de fazer à mão - exceto para fins de estudo.

Portanto, use a sequência de instalação canônica da sua distribuição e estude o / etc-Scripts para descobrir como ele funciona.

Você pode normalmente iniciar ou interromper um serviço e fazer outras coisas em /etc/init.d com um destes comandos:

sudo /etc/init.d/ftpd help
sudo /etc/init.d/ftpd start 
sudo /etc/init.d/ftpd restart 
sudo /etc/init.d/ftpd stop 
sudo /etc/init.d/ftpd status

mas isso somente por convenção - alguns serviços podem não usar todas essas opções, alguns usam mais ou menos.

No Ubuntu, a situação mudou recentemente. Existe agora o daemon upstart, que espera que você use

sudo restart apache2 
sudo status httpd 

para alcançar o mesmo resultado, mas hoje só recebo um aviso, se eu usar o estilo antigo e mais comum. Eu não sei agora se outros sistemas Linux e sistemas Unix estão mudando para o upstart também.

    
por 21.03.2012 / 08:40