executar níveis apenas no arranque

1

Eu acho o conceito de runlevels muito confuso. Atualmente, estou tentando executar um script apenas na inicialização. Mas configurar como mostrado abaixo faz com que ele funcione também no tempo de parada.

Estou programando um daemon assim:

update.rc-d script.sh defaults 100

Eu também já tentei

update-rc-d script.sh start 100

Mas isso também não funciona.

    
por Janus Gowda 23.07.2013 / 14:01

2 respostas

4

Runlevels são grupos lógicos de tarefas. Tradicionalmente, você tem cinco níveis de execução.

0 boot
1 single user 
2 not used
3 multiuser
4 not used 
5 gui
6 reboot 

Cada runlevel define um conjunto de tarefas mais ou menos estático para ser executado. Nível de execução 1, pode não ter rede enquanto o nível de execução 3 pode não ter a tela de login da GUI. Um sistema passa por todos os runlevels inferiores antes de atingir o nível de execução padrão . Para uma caixa típica do Ubuntu, o nível de execução tradicional é 5: GUI, enquanto outras distribuições como o Debian ou o Gentoo podem ser configuradas para rodar o 3: multiuser como o nível de execução padrão.

Em versões recentes do ubuntu, este modelo mudou um pouco porque o modo anterior de iniciar o sistema não permitia que múltiplos serviços (programas) rodassem em paralelo. Sem dúvida, havia outras razões também.

Se eu entendi seu objetivo corretamente, você precisa executar um único comando. Você pode fazer isso colocando-o junto com qualquer outro comando que você possa ter no arquivo /etc/rc.local :

$ chmod 755 /etc/rc.local 

O sistema Init não executará este arquivo sem os bits de execução

$ cat /etc/rc.local
#!/bin/sh -e
# This script is executed at the end of each multiuser runlevel.

loadkeys  /root/jolemak.iso15.kmap
exit 0

Qualquer runlevel multiusuário significa qualquer nível de execução acima de 3. Neste exemplo, um único comando é executado para carregar um layout de teclado alternativo para os consoles virtuais. Ele serve como uma maneira rápida de corrigir o layout antes de descobrir como instalar e configurar adequadamente os layouts adicionais.

Se você precisa fazer coisas mais avançadas, escreva um tradicional /etc/init.d/foo script ou um novo upstart (específico do Ubuntu) /etc/init/moo.conf. Estude os exemplos nessa pasta e leia o wiki para mais informações.

link
link
link

Sua pergunta também é respondida aqui: link e aqui link

    
por Ярослав Рахматуллин 24.07.2013 / 03:06
0
O

link documenta como seu script deve funcionar. Seu script será executado na inicialização E no encerramento E sempre que um usuário executar "service yourscriptname". Você precisa informar ao seu script para verificar seu primeiro e único parâmetro. Se esse parâmetro for "start", inicie seu serviço ou faça o que seu script fizer. Se esse parâmetro for "stop", pare o seu serviço ou não faça nada. Como você lida com "restart" e "status" é com você. Agora seu script está ignorando esse parâmetro, então quando "script.sh start" é chamado na inicialização, tudo está bem, mas quando "script.sh stop" é chamado, ele interrompe a execução toda.

    
por Sparr 24.07.2013 / 03:25