Executando um script bash de um xsession para alternar os programas de inicialização

2

Então eu tenho um desafio interessante na minha frente, rodando o Ubuntu 16.04.

Eu criei originalmente um arquivo .xsession que executava Exec=google-chrome --kiosk http://some-url.com para inicializar como um dispositivo de quiosque.

O arquivo .xsession mencionado acima existe em /usr/share/xsessions/ e é definido como a sessão padrão no arquivo de configuração lightdm encontrado em /usr/share/lightdm/lightdm.d.conf/50-ubuntu.conf .

Isso funcionou bem.

Para o novo desafio:

Eu quero poder alternar remotamente se o dispositivo inicializa ou não no modo de quiosque.

Em uma tentativa de fazer isso, modifiquei o comando Exec para executar um script bash que escrevi para determinar se ele deve ser inicializado ou não como um quiosque.

O seguinte script é executado a partir do arquivo .xsession:

#! /bin/bash

KIOSK_MODE=$(curl http://some-url.com/bootInKioskMode/)

if [ $KIOSK_MODE = "true" ] ; then
    google-chrome --kiosk http://some-url.com
else
    gnome-session --session=ubuntu &
    unity
fi

A ideia é que, como posso controlar o retorno do link , posso alternar o modo de inicialização do dispositivo

Como está agora, tenho dois problemas que preciso resolver.

  1. Minha declaração if / else está sempre correspondendo a false ... portanto, não está inicializando no modo de quiosque, mesmo que a resposta de curl seja true .

  2. Quando inicializa e executa os comandos após a instrução else , ela não corresponde realmente a uma inicialização padrão. A barra de menu superior está faltando, assim como as opções de ícones e configurações no canto superior direito da tela.

Outras coisas que vale a pena mencionar:

  • Eu sei que ele está conectado à internet, e a solicitação de onda está sendo disparada ok por meio de testes (com saída e salvamento em um arquivo).

  • Eu tenho a configuração para fazer login automático em um usuário de quiosque que não tem permissões sudo e tenho executado testes nessas condições.

Qualquer ajuda com isso é apreciada. Neste ponto, passei horas pesquisando e testando coisas diferentes e ainda tenho muita sorte.

Obrigado.

    
por camroncade 24.05.2016 / 22:23

1 resposta

0

Redecompõe o seu problema. Você poderia facilmente escrever um script Perl simples para ouvir uma porta acordada (por exemplo, 30201 ). Veja este exemplo do thegeekstuff.com . Já a parte do servidor aceita 3 comandos: "quiosque", "desktop" e "quit". "quiosque" e "área de trabalho" definem / limpam uma bandeira como /var/run/kiosk-mode . Inicie o servidor em /etc/init . Então você pode simplesmente if [[ -f /var/run/kiosk-mode ]] ; then ... no seu script.

    
por waltinator 25.05.2016 / 02:55