Entendo a inicialização / runlevel:
Para começarmos, quero abordar de forma rápida o sistema de inicialização que o Ubuntu 7.04, assim como outras distribuições
Linux usam.
Existe um "esquema" de diretórios pelo qual as aplicações iniciam. Esses diretórios são descritos abaixo e em referência a eles existe um material farto na Internet.
- /etc/init.d --> - - Diretório de carga de scripts;
- /etc/rc0.d --> 0 - Executa scripts no "Halt" do sistema;
- /etc/rc1.d --> 1 - Executa scripts no modo "Single User";
- /etc/rc2.d --> 2 - Executa scripts em modo "Multiusuário";
- /etc/rc3.d --> 3 - Executa scripts em modo "Multiusuário Completo";
- /etc/rc4.d --> 4 - Não é usado;
- /etc/rc5.d --> 5 - Executa scripts na carga da Interface Gráfica;
- /etc/rc6.d --> 6 - Executa scripts no reinício do sistema: "Reboot".
O diretório "/etc/init.d" é o responsável por conter os scripts propriamente ditos, e os diretórios subsequentes são links simbólicos para os scripts reais, e determinam qual tipo de inicialização (runlevel) e a sequência de carga dos mesmos.
O que realmente nos interessa aqui é colocarmos o
Motion para carregar com "runlevel 3", ou seja, com direitos de "Super Usuário", para que o dispositivo de vídeo possa ser devidamente acessado e os arquivos gravados (no meu caso), em uma pasta devidamente segura onde somente o root tem acesso total, restringindo assim o acesso aos demais usuários.
Colocando o Motion na carga do sistema
Agora vamos ao que realmente interessa, colocar o Motion para carregar com o sistema.
Usei o seguinte script (com algumas alterações) que encontrei na própria internet, o qual vocês devem copiar e colar em um editor de texto, como por exemplo o kedit.
Copie e cole o seguinte script:
#!/bin/bash
#
# chkconfig: 235 65 40
# description: Esse script é apenas um exemplo de scripts SYSV
#
case "$1" in
start)
printf "Starting %s services: " "meuscript"
motion &
echo
;;
stop)
printf "Stoping %s services: " "meuscript"
printf "Parando o Motion..."
echo
;;
restart) #<--opcional
$0 stop
$0 start
;;
*)
printf "Modo de usar: %s {start|stop|restart}
" "meuscript"
exit 1
esacz
exit 0
Como root, salve este script como "scriptmotiom" em /etc/init.d.
Na mesma pasta dê permissão de execução ao script com o comando:
# chmod 755 scriptmotion
Atualize o diretório de inicialização, indicando para que o "scriptmotion" inicie em runlevel 3 com o seguinte comando:
# update-rc.d scriptmotion defaults 03
Repare que na linha do script onde carrego o motion inseri o caractere "&" para que o mesmo seja carregado e fique em segundo plano, sem o qual seu sistema ficaria "travado" na inicialização do sistema, rodando somente o motion... aconteceu comigo! Tive que iniciar em "modo de segurança" e remover a indicação de inicialização do script.
Caso isso aconteça com você, use o comando:
# update-rc.d -f scriptmotion remove
O comando acima desfaz as alterações no sistema de inicialização referentes ao nosso script, em quaisquer circunstâncias.
Se tudo correu bem, reinicie o micro e veja os resultados: O Motion executando em segundo plano e gravando os dados de saída normalmente (detecção de movimentos/snapshots).
Ele pode ser restartado/parado/executado com a sintaxe:
/etc/init.d/scriptmotion restart/stop/start
Bem, acho que é isso aí! Qualquer dúvida entrem em contato.
Até a próxima pessoal!