Eu tenho o seguinte problema: Usando um RaspPi 3B executando o Raspbian Jessie (versão 4.4.26-v7 +), gostaria que a GUI de um script python auto-escrito fosse executada na inicialização.
Sei que essa pergunta foi feita neste site e em outros, mas como o Raspbian continua mudando e nenhuma das soluções sugeridas antes funcionou para mim (veja abaixo), eu gostaria de perguntar novamente.
Pelo que entendi, preciso carregar o XServer e executar meu script posteriormente. Isso deve acontecer em vez de carregar toda a área de trabalho.
Uma maneira de conseguir isso é através do arquivo de inicialização automática do LXDE (conforme descrito nesta resposta ). Editei o arquivo /etc/xdg/lxsession/LXDE-pi/autostart
e o arquivo /etc/xdg/lxsession/LXDE/autostart
(o primeiro continha originalmente quatro linhas em vez de três, conforme sugerido no post mencionado) - adicionando as linhas @sudo python /full/path/to/file.py
e @openbox
, mas meu Pi ainda é inicializado na área de trabalho e não executa o script automaticamente. Anotação: tentei apenas a linha de script e a linha de script junto com a linha de caixa aberta para um dos arquivos e para os dois arquivos juntos.
Outra estratégia envolve o arquivo rc.local (como sugerido na documentação oficial ). No entanto, apenas a adição python /full/path/to/file.py &
não funcionou (pois ainda estava faltando minha GUI) e a adição adicional startx
não ajudou, pois aparentemente eu não conseguia vincular o startx ao script python, e o primeiro foi fechado imediatamente após o início.
Alguns sugerem que (adicionalmente) .xinitrc deve ser usado. Isso, no entanto, também não funcionou:
su -c python /full/path/to/file.py pi
E, por último, mas não menos importante, de alguma forma, deve ser possível usar o init.d - mas ainda não encontrei detalhes sobre isso.
Eu realmente aprecio qualquer dica na direção certa. Onde está meu erro? Como deve ser minha linha em rc.local ou .xinitrc? Ou houve grandes alterações relacionadas à mudança para pixel e devo tentar outra coisa?
Algumas informações adicionais: O script precisa de direitos sudo. Está escrito em Python 2.7, a GUI está usando o Tkinter. A GUI preenche a tela completamente, portanto, os planos de fundo são irrelevantes. O script deve ser executado para sempre (ou até que seja interrompido pela entrada do usuário através da GUI) e usa serviços de sistema como Wi-Fi e Ethernet.
Mais informações: Tudo está acontecendo localmente.
Esclarecimento: A essa altura, passei mais de 8 horas pesquisando na rede, testando tutoriais de diferentes pontos de partida ou misturando-os. Cheguei à conclusão de que meu script (que funciona perfeitamente quando iniciado em pixel) não funciona se for executado em um ambiente não desktop (o que duvido) ou que um novo tutorial é necessário, porque o outubro de 2016 muda para Raspbian tornou obsoletos os tutoriais mais antigos. Além disso, o desafio não está em iniciar o script ou iniciar o Xserver (ou algo semelhante) independentemente um do outro, mas em fazer os dois vinculados para que o script use a exibição criada pelo Xserver.