Como posso detectar quando a seqüência de inicialização está completa no sistema headless

0

Eu tenho um arquivo CONF em / etc / init para configurar e iniciar o software na minha máquina sem cabeçalho. Quando um monitor é conectado para desenvolvimento e teste, vejo que meu software é iniciado perto do final da seqüência de inicialização quando conexões de rede (inexistentes) estão sendo pesquisadas. A inicialização faz uma pausa e depois imprime uma mensagem informando que esperará até 60 segundos a mais. Após 60 segundos, a sequência de inicialização continua, meu software falha e o Ubuntu pede login.

Minha solução alternativa para o teste é adicionar um sleep 150 ao script bash que é iniciado, mas prefiro que o script detecte quando a inicialização está completa e use um número mágico.

Existe alguma maneira de fazer isso em um script? (Eu não sou proficiente com o LINUX BTW.)

EDIT Meu computador tem dois NICs. A LAN1 se conecta diretamente a uma câmera IR de nível de pesquisa e usa UDP para comunicações. LAN0 se conecta a um roteador para permitir que um usuário carregue uma página da Web para controlar a câmera a partir do computador através de WiFi. Exceto quando o desenvolvimento, teste ou depuração do roteador não se conecta a nenhuma rede externa.

/etc/init/fireimager.conf

description "Copies fireimager executables to the ram disk and executes them."
author "Robert Lockwood"

#start on filesystem or runLevel [2345]
start on net-device-added INTERFACE=eth0
stop on shutdown

script
    exec /home/programmer/bin/init/inittest
    echo "['date'] Fireimager Suite Started" >> /var/log/fireimager.log

end script

/ home / programmer / bin / init / inittest

#!/bin/bash
# programs to run as user programmer

su -c "/home/programmer/bin/provisionServer" programmer password -
sleep 130
su -c "/home/programmer/bin/startAPI &" programmer password -
su -c "/home/programmer/bin/startServer &" programmer password -
su -c "/home/programmer/bin/startController &" programmer password -
    
por Nate Lockwood 13.03.2015 / 20:31

1 resposta

0

Isso interromperá o gerenciador de rede procurando por qualquer rede. Mas qualquer conexão encontrada anteriormente ainda funcionará.

sudo su
echo manual >> /etc/init/network-manager.override

ou na sua configuração, altere sua partida para

start on net-device-added INTERFACE!=lo

ou

start on net-device-added INTERFACE=eth0 (eth0 or what ever connection you have)
    
por nico 14.03.2015 / 02:53