Como autostart um programa após a conexão de rede no Ubuntu?

4

Como posso iniciar automaticamente o cromo no lubuntu depois de uma conexão de rede?

Eu tentei adicionar ~ / .config / autostart / mas o cromo começou antes da conexão Wi-Fi, então uma página de erro é exibida.

Eu fui pesquisado pelo Google, mas ainda não encontrei nenhuma solução.

    
por user998661 16.11.2011 / 11:42

2 respostas

4

Eu não conheço uma maneira elegante, mas aqui está uma abordagem que deve funcionar.

Escreva um script que testa para ver se você está online. Se não, durma por algum tempo e, em seguida, retorne para testar novamente. Quando você estiver on-line, inicie o chrome e saia, etc. Coloque esse script em seu diretório de início automático.

No bash, o comando de espera é sleep. Leva um argumento do número de segundos que você quer esperar. Ele impede que seu script seja testado com muita frequência e use recursos.

O truque é descobrir se você está online. Uma maneira de fazer isso é fazer algo pequeno que falhará se você não estiver online. Abaixo está um hack que deve ser o suficiente para você começar (se você sabe bash). Eu encontrei o truque de comando wget na web em algum lugar e não sei exatamente o que ele faz, mas é rápido e funciona.

Você terá que substituir seu caminho pelo chrome.

O "e" comercial no final da linha "chrome" faz com que o chrome seja executado em segundo plano, para que o script não seja interrompido nessa linha até que o chrome seja encerrado. Ele continuará e terminará normalmente, deixando o chrome funcionando sozinho.

Se você quiser se interessar, há uma maneira de salvar o ID do processo da tarefa em um arquivo, etc., para que você possa encontrá-lo facilmente e matá-lo mais tarde se decidir que não deseja que o chrome seja iniciado você fica online em uma sessão particular. Mas isso é um pouco além do escopo da sua pergunta. (e não me lembro como fazê-lo;))

#!/bin/bash

function online {
  ## Test if online - prototype code
  wget -q -O /dev/null --timeout=5 http://udc.msn.com/c.gif
  return $?
}

until online
do
  sleep 5
done

/opt/google/chrome/google-chrome &
    
por 22.11.2011 / 01:37
0

Acho que o seguinte deve funcionar, mas estou supondo que você defina o caminho para ~/.config em seu ~/.bashrc

Verifique se você tem os caminhos do seu bashrc definidos assim

export PATH=$PATH:$HOME/.config:/other/stuff

em vez de

export PATH=$HOME/.config:/other/stuff:$PATH

onde $PATH são as configurações do PATH em todo o sistema - você está garantindo que os arquivos de início automático em /etc/xdg/autostart sejam lidos antes das configurações da sua casa ao fazer o login.

    
por 30.11.2013 / 18:00

Tags